one-to-one 标签自带 cascade 所以不会报TransientObjectException异常
如果是 设置person表里的主键 参照IDCard表里的主键
public void testInsert(){
Person p = new Person();
p.setName("张三");
IDCard i = new IDCard();
i.setCardno("888888");
p.setCardid(i);
Session session = Tools.getSession();
session.beginTransaction();
session.save(p);
session.getTransaction().commit();
if(session!=null){
Tools.free(session);
}
}结果是 两张表都会被插入数据
public void testInsert2(){
Person p = new Person();
p.setName("张三");
IDCard i = new IDCard();
i.setCardno("888888");
i.setPersonid(p);
Session session = Tools.getSession();
session.beginTransaction();
session.save(i);
session.getTransaction().commit();
if(session!=null){
Tools.free(session);
}
}结果是只有Idcard表内被插入数据
本文探讨了一对一关系在数据库操作中的实现方式及效果,通过实例展示了如何正确设置主键参照,确保数据完整性和一致性。同时,对比了两种不同设置方式下数据库操作的结果,揭示了它们对数据插入的影响。
2023

被折叠的 条评论
为什么被折叠?



