我需要在Hibernate中插入两个表 - 我有一个用户,每个用户都属于一个成员。因此,在创建新用户时,我需要在Member表中添加一个新条目。我通过创建一个映射到我的成员表的Member对象,然后将其作为我的User对象中的一个字段映射到用户表来尝试这个
@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;
我的会员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;
}
这为我提供了保存在用户表中的行,但该条目未插入到成员表中。我认为我的链接注释可能不正确,但我不太确定 - 请有人提供一些帮助。
由于
答案 0 :(得分:1)
尝试设置@OneToOne注释的级联值:
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id")
private Member member;