Hibernate_@注解

本文介绍了Hibernate配置技巧,包括SQL格式化显示、类名与表名映射、字段名与属性名映射等,并详细讲解了联合主键的实现方法及ID生成策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值