Hibernate提供三种方式将POJO变成PO类:
1. 使用持久化注解(以JPA标准注解为主,如果有一些特殊要求,则依然需要使用Hibernate本身提供的注解)。
2. 使用JPA2 提供的XML配置描述文件(XML deployment descriptor),这种方式可以让Hibernate的PO类与JPA实体类兼容。
3. 使用Hibernate传统的XML映射文件(*.hbm.xml文件的形式)。
对于Hibernate PO类而言,通常可以采用如下两个注解来修饰它:
1. @Entity : 被该注解修饰的POJO就是一个实体。使用该注解时可指定一个name属性,name属性指定该实体类的名称。默认以该类的类名作为实体类的名称。
2. @Table : 该注解指定持久化类锁映射的表。
@Table 注解可指定的属性:
1. catalog:(非必须)用于设置将持久化类所映射的表放入制定的catalog中。如果没有指定该属性,数据表将放入默认的catalog中。
2. indexs:(非必须)为持久化类所映射的表设置索引。该属性值时一个@Index注解数组。
3. name:(非必须)设置持久化类所映射的表的表名。如果没有制定该属性,那么该表的表名将与持久化类的类名相同。
4. schema : (非必须)设置将持久化类所映射的表放入指定的schema中。如果没有指定该属性,数据表将放入默认的schema中。
5. uniqueConstraints:(非必须)为持久化类所映射的表设置唯一约束。该属性的值是一个@UniqueConstraint注解数组。
@UniqueConstraint用于数据表定义唯一约束。使用该注解可以指定唯一的属性:columnNames。columnNames的值是一个字符串数组,每个字符串元素代表一个数据列。
@Index用于数据表定义索引。使用该注解可以指定columnList、name、unique等属性。
1.columnList
2. name
3. unique
3. @Access
AccessType.PROPERTY
AccessType.FIELD
4. @Proxy
5. @DynamicInsert : 指定用于出入记录的insert语句是否在运行时动态生成,并只插入那些非空字段。该属性的值默认时false。开启该属性将导致Hibernate需要更多时间来生存SQL语句。
6. @DynamicUpdate : 指定用于更新记录的update语句是否在运行时动态生成,并只更新那些改变过的字段。该属性的值默认时false。开启该属性将导致Hibernate需要更多的时间来生成SQL语句。
啦啦啦