Hibernate持久化类

持久化类:

遵循四条主要的规则:

1、实现一个默认(即无参数的)构造方法(constructor)
构造方法可以不是public的,hibernate可以使用ConStructor.newInstance()来实例化它们。强烈建议,在Hibernate中,为了运行期代理的生成,构造方法至少是包内可见的。

2、提供一个标识属性(可选)
映射到数据库表的主键字段。这个属性类型可以是任何的原始类型、原始类型的包装类型、String或是Date。

3、使用非final的类(可选)
代理(proxies)是Hibernate对一个重要的功能,它依赖的条件是,持久类或者是非final的或者是实现了一个所有方法都声明为public的接口。
可以用Hibernate持久化一个没有实现任何接口的final类,但是你不能使用代理来延迟关联加载,这会限制你进行性能优化选择。
也应该避免在非final类中声明public final的方法。如果你想使用一个有public final方法的类,你必须通过设置laze="false"来明确地禁用代理。

4、为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选)
属性不需要声明为public的。Hibernate可以持久化一个有default、protected或private的get/set方法对的属性进行持久化。


实现继承:

子类也必须遵守第一条和第二条规则。它从超类集成了标识属性。

 

实现equals()和hashCode():
如果有如下要求,必须重载equals()和hashCode()方法:
·想把持久类的实例方法Set中
·想重用托管实例

Hibernate保证,仅在特定会话范围内,持久化标识和java标识是等价的。因此,一旦我们混合了从不同会话中获取的实例,如果希望Set有明确的语义,就必须实现equals()和hashCode()。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值