1、setId方法私有化,因为id是由生成策略来产生,无需外部指定。
2、mang-to-mang关联,在person中使用Set保存
3、M:N关系设置单向关联就足够。如果是从person到event的一个关联,则在person中配置set标签
4、Hibernate 会自动检测到集合已经被修改并需要更新回数据库。这叫做自动脏检查(automatic dirty checking)你也可以尝试修改任何对象的 name 或者 date 属性,只要他们处于持久化状态,也就是被绑定到某个 Hibernate 的 Session 上(如:他们刚刚在一个单元操作被加载或者保存),Hibernate 监视任何改变并在后台隐式写的方式执行 SQL
或在 Session 以外修改不是处在持久化(persistent)状态下的对象(如果该对象以前曾经被持久化,那么我们称这个状态为脱管(detached))
2、mang-to-mang关联,在person中使用Set保存
3、M:N关系设置单向关联就足够。如果是从person到event的一个关联,则在person中配置set标签
4、Hibernate 会自动检测到集合已经被修改并需要更新回数据库。这叫做自动脏检查(automatic dirty checking)你也可以尝试修改任何对象的 name 或者 date 属性,只要他们处于持久化状态,也就是被绑定到某个 Hibernate 的 Session 上(如:他们刚刚在一个单元操作被加载或者保存),Hibernate 监视任何改变并在后台隐式写的方式执行 SQL
或在 Session 以外修改不是处在持久化(persistent)状态下的对象(如果该对象以前曾经被持久化,那么我们称这个状态为脱管(detached))
你只需要记住这个直观的规则:所有的双向关联需要有一端被设置为 inverse。在一对多关联中它必须是代表多(many)的那端。而在多对多(many-to-many)关联中,你可以任意选取一端,因为两端之间并没有差别。
5、O/R映射的三种方法
a)使用java 5的annotations
b)使用JPA 2的XML部署描述符
c)使用Hibernate XX.hbm.xml进行描述