1.在判断到底是谁维护关联关系时,可以通过查看外键,哪个实体类定义了外键,哪个类就负责维护关联关系。
JoinColumn(name="pid")
2. 在保存数据时,总是先保存的是没有维护关联关系的那一方的数据,后保存维护了关联关系的那一方的数据,如:
Person p = new Person();
p.setName("xiaoluo");
session.save(p);
IDCard card = new IDCard();
card.setNo("1111111111");
card.setPerson(p);
session.save(card);
因为有主外键关系,不可能主键还没有就生成外键
3.fetch=FetchType.LAZY 默认都是非延迟加载EAGER
--------------java转json hibernate懒加载造成的无限递归问题 ----------------------
hibernate对象懒加载,json序列化失败,因为懒加载这个对象属性只是一个代理对象,如果json直接当作一个存在的属性去序列化就会出现错误
需要在实体类上加上
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler"})
java转json hibernate关联关系造成的无限递归问题,value里添加映射字段
@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler","fieldHandler","historyArcticlesLinkMapping"})