这篇文章主要介绍了Entity怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Entity怎么用文章都会有所收获,下面我们一起来看看吧。
Entity是基于JPA规范。更详细的技术细节请参考JPA或Hibernate文档。
com.jspxcms.plug.ContextConfig的@EntityScan({ "com.jspxcms.plug.domain" })会自动扫描该包下含有@Entity注解的类。
不使用主键自增策略,而是使用JPA的TABLE主键生成策略,将主键放到数据库中的一个表里,这个表在Hibernate里默认为Hibernate_sequences。所以在建表的时候不要使用主键自增。
create table plug_resume ( f_resume_id int not null, f_site_id int not null, f_name varchar(100) not null comment '姓名', f_post varchar(100) not null comment '应聘职位', f_creation_date datetime not null comment '投递日期', f_gender char(1) not null default 'M' comment '性别', f_birth_date datetime comment '出生日期', f_mobile varchar(100) comment '手机', f_email varchar(100) comment '邮箱', f_expected_salary int comment '期望薪水', f_education_experience longtext comment '教育经历', f_work_experience longtext comment '工作经历', f_remark longtext comment '备注', primary key (f_resume_id) ) engine = innodb; alter table plug_resume comment '简历表'; alter table plug_resume add constraint fk_plug_resume_site foreign key (f_site_id) references cms_site (f_site_id) on delete restrict on update restrict;
使用JPA的TABLE主键生成策略。
需注意以下三个值:name = "tg_plug_resume", pkColumnValue = "plug_resume" generator = "tg_plug_resume",其中plug_resume为表名,如果表名为abc,则这三个值分别为name = "tg_abc", pkColumnValue = "abc" generator = "tg_abc"。
initialValue = 1代表主键从1开始。allocationSize = 10代表hibernate一次获取10个主键值,如果没有用完系统就重启了,那么在数据库中会出现主键不连续的情况。但由于获取主键值要查询并修改数据库,对于频繁插入数据的表来说,是一个很大的开销,所以可以根据情况适当调整这个值。
如果使用MySQL的主键自增,除了在表主键里增加主键自增属性,在Entity里的ID注解也要改为@GeneratedValue( generation = IDENTITY )或@GeneratedValue( generation = AUTO )。
package com.jspxcms.plug.domain; @Entity @Table(name = "plug_resume") public class Resume implements java.io.Serializable { private Integer id; …… @Id @Column(name = "f_resume_id", unique = true, nullable = false) @TableGenerator(name = "tg_plug_resume", pkColumnValue = "plug_resume", initialValue = 1, allocationSize = 10) @GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_plug_resume") public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } …… }
关于“Entity怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Entity怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。