Hibernate注解(二)属性级别注解
一、增加方式
(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注解(二)属性级别注解