hibernate之注意事项

 

hibernate之注意事项

----------

1.执久类中关联表主键的属性,setter方法最最设置为private。

2.执久类中属于乐观并发控制的版本属性,最好不设置getter与setter方法,以field形式访问。注意:数字版本优于时间戳版本。

3.执久类必须扩展Serializable,不能用final声明为final类,也不能在非final类中声明public final,否则

  你必须用lazy="false"来明确地禁用代理。

4.想把持久类的实例或值类型的组件类放入Set中时(多值关联),想重用脱管实例时,必须重载equals()和hashCode()方法。

  Hibernate按值比较对象---不是按对象同一性---来确定持久类的持久化状态是否需要更新。hibernate

  脏检查自动侦测对象状态的改变,以便更新过的状态与数据库同步。这有一个重要的例外:集合是按同一性比较的。

  由此明白,为什么Set中的执久类要实现equals()与hashCode()方法了,因为hibernate按值比较对象的。

  还有一点,集合的setter方法最好删除,不要这个方法。否则在级联时(新set中的数据跟原有set中的数据一样,

  但就不是同一个对象)hibernate会删除原有的set中的对象(在表中删除数据集),然后插入当前设置的这个集合(在表中插入数据集),

  即使它们是一样的数据,但它们已经不是一个对象了,因为集合是按照引用比较的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值