当前位置: 首页 > 知识库问答 >
问题:

在数据库中添加NULL

岳枫
2023-03-14
@Entity
@Table(name = "UserDetails")
public class UserDetails {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "userId")
    private int userId;

    @Column(name = "UserName")
    private String userName;

    @OneToMany
    @JoinColumn(name = "address")
    private Collection<Address> address = new ArrayList<Address>();
}
@Entity
@Table(name = "address")
public class Address {
    @Id
    @GeneratedValue
    @Column(name = "id")
    private int id;
    @Column(name = "city")
    private String city;
}
UserDetails ud=new UserDetails();
ud.setUserName("User 1");

Address ad1=new Address();
ad1.setCity("Mumbai");

Address ad2=new Address();
ad1.setCity("Pune");

ud.getAddress().add(ad1);
ud.getAddress().add(ad2);

Session session=factory.openSession();
session.beginTransaction();
session.save(ud);
session.save(ad1);
session.save(ad2);


session.getTransaction().commit();
session.close();
userId       UserName     Address
1            User 1       NULL
Id      City    Address
1       Pune    1
2       NULL    1

共有1个答案

白子默
2023-03-14
Address ad2=new Address();
ad1.setCity("Pune");

您正在将城市pune设置为address1,而不是address2尝试将其更改为

 Address ad2=new Address();
    ad2.setCity("Pune");

更新

您的用户表adrees列为null,因为您的pojo中没有映射字段for address,无论如何,您的数据库模式设计方法是错误的,实现了onetomany关系。请在这里查看一对多冬眠的正确方式

 类似资料:
  • 我有一只熊猫df[见下文]。如何将函数中的值添加到新列“price”?

  • 我试图在用户ID下添加新的用户数据,但它将旧数据替换为新数据,并添加另一个“users”和“user\u account\u settings”。 这是我的实时数据库:在此处输入图像描述 我的实时数据库必须是这样的:添加新的用户数据而不将旧数据替换为新数据,也不添加“用户”和“user_account_settings”。 这就是我想要的数据库结构示例:在此处输入图像描述 这是用于添加新用户的代码

  • 问题内容: 这是我的第一篇文章!希望您能帮帮我!:-) 我使用了NotePadExample提供的来自开发人员文档的代码来创建数据库。现在,我想添加第二个表来存储不同的数据。我可以毫无问题地添加注释,并且注释表的创建方式与路由表类似。我只是简单地“复制”并编辑了给定的代码,但是当我尝试插入到新表中时,出现错误消息: “ 0ERROR / Database(370):android.database

  • 问题内容: 我通过这种方式将数据库显示给JTable,我在Internet上找到了它,这不是我的,并且可以正常工作。但是现在我不知道如何向JTable和数据库中添加行,我发现了很多网站,但没有用(PreparedStatement,executeUpdate …)。有人可以帮助我吗,因为我刚刚学过。谢谢 ! 问题答案: 那是一个不好的例子: 变量名称不应以大写字母开头。 硬编码数组大小以支持10,

  • 问题内容: 有没有一种方法可以使用预先定义的值自动更新Mysql DB中表中的列的值,并且该更新应该每月进行一次。 情况是,我想更新表雇员的列余额,每个雇员每月增加2.5天,并且每两年为每名雇员重设总天数。 问题答案: 考虑使用mysql的Create Event策略,该策略可以免去执行cron作业的麻烦。 几乎在任何情况下,您都可以做一些今年初就不会想到的事情。例如每周一次根据员工周年纪念日处理

  • 创建新模型时,将自动创建一个数据库或模式(名为 Default),它是默认的数据库或模式。所有新添加的对象(表和视图)都属于默认数据库或模式。 你可以在浏览器的模型选项卡中查看以树结构表示的所有数据库或模式及其对象。 在浏览器的模型选项卡中数据库或模式的弹出式菜单选项包括: 选项 描述 新建数据库 / 新建模式 创建数据库或模式。 删除数据库 / 删除模式 从模型中删除已选择的数据库或模式及其对象