【发布时间】:2014-01-06 11:18:40
【问题描述】:
我在休眠中使用一对一映射我有两个实体RegisterPartner,另一个是Userdetails.userdetails 有user_id 作为主键,它在RegisterPartner 中用作外键但是当我保存它正确保存的实体,但外键变为null
@Entity
@Table(name="tbl_login")
public class Userdetails implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="user_id")
private int user_id;
@Column(name="username")
private String username;
@Column(name="password")
private String password;
@OneToOne(mappedBy = "userdetail", cascade = CascadeType.ALL)
private RegisterPartner registerpartner ;
public Userdetails(){
}
}
@Entity
@Table(name="tbl_partner")
public class RegisterPartner implements Serializable , Comparable<RegisterPartner>{
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="register_id")
private int register_id;
@Column(name="agency_name")
private String agencyname;
@Column(name="agency_type")
private int agencytype;
@OneToOne
@PrimaryKeyJoinColumn(name = "user_id", referencedColumnName = "user_id")
private Userdetails userdetail;
public RegisterPartner(){}
}
保存代码
public String savePartnerRegister(){
RegisterPartner registerpartner = new RegisterPartner();
Userdetails userdetails = new Userdetails();
registerpartner.setAgencyname(getAgencyname());
registerpartner.setAgencytype(getAgencytype());
userdetails.setUsername(getUsername());
userdetails.setPassword(getPassword());
userdetails.setRegisterpartner(registerpartner);
registerpartner.setUserdetail(userdetails);
SessionFactory sessionFactory= HibernateManager.getSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(userdetails);
session.getTransaction().commit();
session.close()
}
不明白发生了什么。
【问题讨论】:
标签: hibernate null foreign-keys