manual docs
1.show_sql和format_sql
在hibernate.cfg.xml配置文件中添加如下的配置:
<propertyname="format_sq">true</property>,将sql语句格式化一下
2.类名与数据库表名不一致
在类名上方添加注解:@Table(name="XXX")
3.字段名和属性名不一致
在对应字段的getXXX方法上面上方添加注解:@Column(name="XXX")
4.取消字段的持久化
在对应字段的getXXX方法上面上方添加注解:@Transient
5.指定Date存储的格式:
在时间对应的getXXX方法上面添加注解:
@Temporal(TemporalType.TIME)只存储时间: hh:mm:ss
@Temporal(TemporalType.DATE)只存储日期: yyyy-MM-dd
@Temporal(TemporalType.DATETIME) 时间日期一起存储:yyyy-MM-dd hh:mm:ss
6.ID生成策略 identity(1,1)自动生成:
· Id的get方法上方添加@GeneratedValue ,mysql默认是auto_increment,Oracle中默认是hibernate_sequence(名称固定)
· 联合主键:如图:
★:在主键类属性的get方法上方添加@EmbeddedId,设定联合主键!在主键类中写联合属性的get和set方法!
★:这个主键类必须重写public boolean equals()和public int hashCode()方法!实现Serializable接口
<!-- <generator class="native"/> -->
7.联合主键
可以使用一个组件作为一个实体类的标识符。你的组件类必须满足以下要求:
8.联合主键生成策略annotation配置方法
定义组合主键的三种方式:
l (少用)将组件类注解为@Embeddable,并将组件的属性注解为@Id.
实体模型Teacher(teacherPK,age) TeacherPk(id,name)
在TeacherPk(id,name)中把类注解@Embeddable
在Teacher(teacherPK,age)中把组件属性teacherPK注解@Id
l 将组件的属性注解为@EmbeddedId.
实体模型Teacher(teacherPK,age) TeacherPk(id,name)
只需要在Teacher(teacherPK,age)中把组件属性teacherPK注解@EmbeddedId
l (推荐使用)将类注解为@IdClass,并将该实体中所有属于主键的属性都注解为@Id.
实体模型Teacher(id,name,age) TeacherPk(id,name)
在Teacher(id,name,age)中把类注解@IdClass(value=”TeacherPk.Class”),在主键属性id,name上注解@Id即可.当IdClass()中只有一个属性默认写成IdClass(TeacherPk.Class).也就是说Teacher里面的组件属性id,name,合起来刚好是类TeacherPk.