Hibernate学习笔记(4):基本映射以及相关属性配置

Hibernate学习笔记(4):基本映射以及相关属性配置

hibernate基本映射

实体类--->表
实体类中的普通属性--->表字段

采用<class>标签映射成数据库表,通过<property>标签将普通属性映射成表字段
所谓普通属性指不包括自定义类,集合,数组等

属性值应该注意不能与数据库的关键字冲突,如果冲突必须重命名列名,否则出问题。表名也是。

实体类的设计原则:
1、实现一个默认的构造方法
2、提供一个标识属性(可选)
3、使用非final类(可选),因为不能继承和复写
4、为持久化字段声明访问器

hibernate-mapping标签的常用属性:
<hibernate-mapping
   <!--(可选 - 默认为 true): 指定我们是否可以在查询语言中使用非全限定的类名(仅限于本映射文件中的类)。 -->
   auto-import="true|false"
   <!--(可选): 指定一个包前缀,如果在映射文档中没有指定全限定的类名, 就使用这个作为包名。 -->
   package="package.name"
/>

class标签的常用属性:
<class
   <!--(可选): 持久化类(或者接口)的Java全限定名。 如果这个属性不存在,Hibernate将假定这是一个非POJO的实体映射。-->
   name="ClassName"
   <!-- (可选 - 默认是类名): 对应的数据库表名。 -->
   table="tableName"
   <!--(可选, 默认为 false):为true时只更新那些改变过的字段。 -->
   dynamic-update="true|false"
/>

id标签的常用属性:
<id
   <!--(可选): 标识属性的名字。如果 name属性不存在,会认为这个类没有标识属性。-->
   name="propertyName"
   <!--类型-->
   type="typename"
   <!--(可选 - 默认为name)主键字段的名字。 -->
   column="column_name"
   <!--主键的长度-->
   length="L"
   <generator class="generatorClass"/>
</id>

generator标签的常用属性:
<generator class="generatorClass"/>
常用的generatorClass:
native:自增,自动配置不同的数据库,由数据库自增,生成效率低,但是查找快
uuid:由Hibernate自动生成的字符串,生成效率高,但是查找慢
assigned 手动分配,必须设置id

property标签的常用属性:
<property
   <!--实体类中的属性名-->
   name="propertyName"
   <!--指定列列名,默认为属性名-->
   column="column_name"
   <!--指定存储类型-->
   type="typename"
   <!--是否参与update和insert操作-->
   update="true|false"
   <!--是否使用唯一约束-->
   unique="true|false"
   <!--是否使用非空约束-->
   not-null="true|false"
   <!--指定字段长度-->
   length="L"
/>

你可能感兴趣的:(Hibernate学习笔记(4):基本映射以及相关属性配置)