您好,登錄后才能下訂單哦!
這篇文章主要介紹了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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。