Hibernate注解(二)属性级别注解

作者 : 开心源码 本文共1004个字,预计阅读时间需要3分钟 发布时间: 2022-05-11 共83人阅读

一、增加方式

(1)写在属性字段上面

(2)写在属性的get访问器的上面

二、属性级别的注解

三、@Id

@Id:必需,定义了映射到数据库表的主键的属性,一个实体类能有一个或者者多个属性被映射为主键,可置于主键属性或者者getXxxx()前

注意:假如有多个属性定义为主键属性,该实体类必需实现serializable接口

此时没有生成数据表,由于MySQL规定String类型的字段为主键,不可以过长,必需指定长度小少量

能增加多个属性作为联合主键,但是String类型的属性长度默认是255,太长了不可以作为主键,可通过@column的length来设置长度小少量

四、@GeneratedValue

假如把字段的类型改为String类型,生成策略一样是自动的,跟上一章所说的一样,String类型作为主键,生成的字符长度默认为255,超过了mysql规定的字符串主键的长度,所以此操作未生成数据表

指定长度后,还是不可以生成数据表

对于 MySQL 来讲,@GeneratedValue ==@GeneratedValue(strategy=GenerationType.AUTO)。

主键是字符串,主键生成策略就为手工赋值,不可以使用JPA提供的主键生成策略,要使用Hibernate提供的主键生成器,其中GenericGenerator(name)与generator中的值对应,assigned就是手工赋值。否则用AUTO的话即便长度也规定了,运行也通过了,但是还是生成不了表。

五、增加一条记录

六、@Column

七、@Embedded

@Embedded是注释属性的,表示该属性的类是嵌入类

注意:同时嵌入类最好也标注@Embeddable注解

@Embedded和@Embeddable只要要使用一个(同时使用也一样),而且效果一样

八、@EmbeddedId

@EmbeddedId用嵌入式主键类实现复合主键。

注意:嵌入式主键类必需实现Serializable接口,必需有默认的public无参构造方法,必需覆盖equals和hashCode方法。

新添加一条记录

九、@Transient

属性级别注解@Transient:可选,表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,假如一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic。

没有salary这个字段生成

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Hibernate注解(二)属性级别注解

发表回复