首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hibernate持久种的定义

2012-07-01 
hibernate持久类的定义!--[if !supportLists]--1.???!--[endif]--实现一个默认的(无参数的)构造方法1)

hibernate持久类的定义

<!--[if !supportLists]-->1.???<!--[endif]-->实现一个默认的(无参数的)构造方法

1).所有的持久类必须有一个默认的构造方法,这个hibernate可以使用反射构建此持久类。

2).提供一个标识符属性,建议声明一致的标识属性。

3).使用非final类(可选),hibernate的懒加载需要此类不是final的或是实现了一个所有方法都为public的接口

4).为持久化字段声明访问器(get和set方法)和是否可变的标识(可选)

public class DomesticCat extends Cat {

??????? private String name;

??????? public String getName() {

??????????????? return name;

??????? }

??????? protected void setName(String name) {

??????????????? this.name=name;

??????? }

?

3.实现equals和hashCode方法

??? 由于在一对多中集合是以Set来容纳的。而Set规定了如果set中某个元素,以一种影响equals比较的方式的改变对象的值,那么Set的行为就是不确定的。而如果一个未保存的对象(此时其没有标识值)在set中,如果执行保存该对象,则将会给这个对象一个标志值,如果equals和hashCode方法是基于标志值实现的,则其哈希码会改变。这就违反了set契约。建议使用业务键值相等来实现equals和hashCode

热点排行