溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Entity怎么用

發(fā)布時(shí)間:2022-01-19 16:29:42 來(lái)源:億速云 閱讀:132 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹了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注解的類。

數(shù)據(jù)庫(kù)表

不使用主鍵自增策略,而是使用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;

實(shí)體類

使用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è)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI