gpt4 book ai didi

java - 如何通过Hibernate插入多个表

转载 作者:行者123 更新时间:2023-12-02 03:25:33 25 4
gpt4 key购买 nike

我需要在 Hibernate 中插入两个表 - 我有一个用户,每个用户所属的都是成员(member)。因此,在创建新用户时,我需要在成员表中添加一个新条目。我尝试通过创建一个映射到我的成员表的成员对象,然后将其作为映射到用户表的用户对象中的字段

@Entity
@Table(name = "USER")
public class User
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;

@Column(name = "username")
private String username;

@Column(name = "password")
private String password;

@Column(name = "fullName")
private String fullName;

//other fields ommited

@OneToOne
@JoinColumn(name = "id")
private Member member;

我的成员(member)pojo如下所示

@Entity
@Table(name = "MEMBER")
public class Member
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;

@Column(name = "sgpid")
private int sgpid;

@Column(name = "username")
private String username;

尝试保存我执行以下操作的对象;

@Override
public boolean addUser(User user)
{
if (user == null)
{
throw new IllegalArgumentException("Unable to add null user");
}

Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(user);
session.getTransaction().commit();

return true;
}

这为我提供了保存在用户表中的行,但该条目未插入到成员表中。我认为我的链接注释可能不正确,但我不太确定 - 请有人提供一些帮助。

谢谢

最佳答案

尝试设置@OneToOne注解的级联值:

@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id")
private Member member;

关于java - 如何通过Hibernate插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38972530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com