hibernate基本映射

类---->数据库表

普通属性---->表字段

通过<class>映射到数据库表,通过<property>将普通属性映射到表字段,所谓的普通属性不包括自定义类,集合和数组等。

一,实体类定义原则:

1,实体类需要定义一个无参构造方法

2,提供一个标识属性

3,使用非final类

4,为字段提供set和get访问器

二,hibernate-mapping相关配置标签

1,<hibernate-mapping 

default-access="field|property|ClassName"

package="package.name"/>

default-access属性:表示hibernate用来访问所有属性的策略,默认为property

package:指定一个包前缀,在该包下保存的是类的映射文件

2,<class  name="类的名称"  

 table="指定表的名称"

 dynamic-update="是否动态更新" 

dynamic-insert="是否动态插入"

abstract/>

默认情况下table的名称与类的名称相同;dynamic-update表示是否动态更新,在默认的false情况下会更新一条记录的所有字段,如果设置为true,那么就只更新需要更新的字段;dynamic-insert与dynamic-update的原理相同,默认为false;abstract表示将该类设置为抽象类。

3,<id

 name="标识属性的名称" 

type="hibernate中自定义的数据类型"

column="在数据库表中重命名该列"

></id>

4,主键生成策略

<generator class="主键生成策略"/>

native:采用本地数据库的主键生成策略,数字型主键

uuid:hibernate生成32位16进制字符串,字符型主键

identity:sqlserver,mysql的主键生成策略

sequence:oracle数据库生成策略

foreign:该表的主键来源其他表

assigned:手动指定主键

5,property

<property name="属性字段名称"

cloumn="重定义字段"

type="重定义字段类型"

update

insert

unique="true

not-null

/>

如果在name中的名称与sql的关键字相同,那么可以使用cloumn将该字段重命名,或者使用type重定义字段的数据类型,重定义的数据类型是hibernate中定义的数据类型。update表示该字段是否参与update更新,insert表示字段是否参与插入操作;formula表示该字段能从其他字段通过计算得到值。unique表示该字段是否唯一;not-null表示该字段是否为空;

6,

posted on 2011-02-18 12:21  魔战  阅读(600)  评论(0编辑  收藏  举报