您好,登錄后才能下訂單哦!
這篇文章主要介紹了Entity怎么用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Entity怎么用文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。
Entity是基于JPA規(guī)范。更詳細(xì)的技術(shù)細(xì)節(jié)請(qǐng)參考JPA或Hibernate文檔。
com.jspxcms.plug.ContextConfig的@EntityScan({ "com.jspxcms.plug.domain" })會(huì)自動(dòng)掃描該包下含有@Entity注解的類。
不使用主鍵自增策略,而是使用JPA的TABLE主鍵生成策略,將主鍵放到數(shù)據(jù)庫(kù)中的一個(gè)表里,這個(gè)表在Hibernate里默認(rèn)為Hibernate_sequences。所以在建表的時(shí)候不要使用主鍵自增。
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 '應(yīng)聘職位', 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 '手機(jī)', f_email varchar(100) comment '郵箱', f_expected_salary int comment '期望薪水', f_education_experience longtext comment '教育經(jīng)歷', f_work_experience longtext comment '工作經(jīng)歷', f_remark longtext comment '備注', primary key (f_resume_id) ) engine = innodb; alter table plug_resume comment '簡(jiǎn)歷表'; 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主鍵生成策略。
需注意以下三個(gè)值:name = "tg_plug_resume", pkColumnValue = "plug_resume" generator = "tg_plug_resume",其中plug_resume為表名,如果表名為abc,則這三個(gè)值分別為name = "tg_abc", pkColumnValue = "abc" generator = "tg_abc"。
initialValue = 1代表主鍵從1開(kāi)始。allocationSize = 10代表hibernate一次獲取10個(gè)主鍵值,如果沒(méi)有用完系統(tǒng)就重啟了,那么在數(shù)據(jù)庫(kù)中會(huì)出現(xiàn)主鍵不連續(xù)的情況。但由于獲取主鍵值要查詢并修改數(shù)據(jù)庫(kù),對(duì)于頻繁插入數(shù)據(jù)的表來(lái)說(shuō),是一個(gè)很大的開(kāi)銷,所以可以根據(jù)情況適當(dāng)調(diào)整這個(gè)值。
如果使用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; } …… }
關(guān)于“Entity怎么用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Entity怎么用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。