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,