JPA中EntityListeners注解的使用

使用場景

EntityListeners在jpa中使用,如果你是mybatis是不可以用的

它的意義

對實(shí)體屬性變化的跟蹤跨晴,它提供了保存前决采,保存后,更新前坟奥,更新后树瞭,刪除前拇厢,刪除后等狀態(tài),就像是攔截器一樣晒喷,你可以在攔截方法里重寫你的個性化邏輯孝偎。

它的使用

定義某種功能類型

@Embeddable注解表示這個對象不是單獨(dú)的數(shù)據(jù)表,它里面的字段會在其它實(shí)體中公用

/**

* 數(shù)據(jù)建立與更新.

* Embeddable注解表示不會生成新的數(shù)據(jù)表凉敲,而它的屬性會在其它表內(nèi)部衣盾,比較容易實(shí)現(xiàn)代碼復(fù)用.

*/@Getter@Setter@Embeddablepublic class Audit {@Column(name ="created_on")? private LocalDateTime createdOn;@Column(name ="created_by")? private String createdBy;@Column(name ="updated_on")? private LocalDateTime updatedOn;@Column(name ="updated_by")? private String updatedBy;}

定義接口,對上面類型進(jìn)行讀和寫的行為

/**

* 數(shù)據(jù)建立與更新.

*/publicinterfaceAuditable{AuditgetAudit();voidsetAudit(Audit audit);}

定義跟蹤器爷抓,接口參數(shù)會在具體實(shí)現(xiàn)類中傳過來

/** * Hibernate 事件監(jiān)聽器. * 實(shí)體監(jiān)聽@EntityListeners(AuditListener.class). */@Slf4j@Component@TransactionalpublicclassAuditListener{@PrePersistpublicvoidsetCreatedOn(Auditable auditable){? ? Audit audit = auditable.getAudit();if(audit ==null) {? ? ? audit =newAudit();? ? ? auditable.setAudit(audit);? ? }? ? audit.setCreatedOn(LocalDateTime.now());? ? audit.setUpdatedOn(LocalDateTime.now());? }@PreUpdatepublicvoidsetUpdatedOn(Auditable auditable){? ? Audit audit = auditable.getAudit();? ? audit.setUpdatedOn(LocalDateTime.now());? }}

實(shí)體去實(shí)現(xiàn)這個對應(yīng)的跟蹤接口

@Embedded注解表示它是一個內(nèi)嵌到當(dāng)前實(shí)體里的對象势决,它自己不是實(shí)體,它只表示實(shí)體里某些字段蓝撇。

@EntityListeners(DataEntityListener.class)publicclassProductimplementsDataEntity{/**

? * 存儲復(fù)雜對象內(nèi)的元素.

? */@EmbeddedprivateAudit audit;@OverridepublicAuditgetAudit(){returnaudit;? }@OverridepublicvoidsetAudit(Audit audit){this.audit = audit;? }}

上面代碼將實(shí)現(xiàn)在實(shí)體保存時對Audit實(shí)體里的createdOn果复,updateOn進(jìn)行賦值,當(dāng)實(shí)體進(jìn)行更新時對updateOn進(jìn)行重新賦值的操作渤昌。

注意虽抄,在當(dāng)前實(shí)體Product對應(yīng)的數(shù)據(jù)表里,它會有Audit類型里的屬性独柑,即它的數(shù)據(jù)表字段會有created_on,created_by,updated_on和updated_by等迈窟。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 歡迎工作一到五年的Java工程師朋友們加入Java群:?741514154

群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)忌栅、高性能及分布式车酣、Jvm性能調(diào)優(yōu)、Spring源碼索绪,MyBatis湖员,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時間來學(xué)習(xí)提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰者春!趁年輕,使勁拼清女,給未來的自己一個交代钱烟!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嫡丙,隨后出現(xiàn)的幾起案子拴袭,更是在濱河造成了極大的恐慌,老刑警劉巖曙博,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拥刻,死亡現(xiàn)場離奇詭異,居然都是意外死亡父泳,警方通過查閱死者的電腦和手機(jī)般哼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門吴汪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蒸眠,你說我怎么就攤上這事漾橙。” “怎么了楞卡?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵霜运,是天一觀的道長。 經(jīng)常有香客問我蒋腮,道長淘捡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任池摧,我火速辦了婚禮焦除,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘险绘。我一直安慰自己踢京,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布宦棺。 她就那樣靜靜地躺著瓣距,像睡著了一般。 火紅的嫁衣襯著肌膚如雪代咸。 梳的紋絲不亂的頭發(fā)上蹈丸,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音呐芥,去河邊找鬼逻杖。 笑死,一個胖子當(dāng)著我的面吹牛思瘟,可吹牛的內(nèi)容都是我干的荸百。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼滨攻,長吁一口氣:“原來是場噩夢啊……” “哼够话!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起光绕,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤女嘲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后诞帐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體欣尼,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年停蕉,在試婚紗的時候發(fā)現(xiàn)自己被綠了愕鼓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钙态。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拒啰,靈堂內(nèi)的尸體忽然破棺而出驯绎,到底是詐尸還是另有隱情,我是刑警寧澤谋旦,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布剩失,位于F島的核電站,受9級特大地震影響册着,放射性物質(zhì)發(fā)生泄漏拴孤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一甲捏、第九天 我趴在偏房一處隱蔽的房頂上張望演熟。 院中可真熱鬧,春花似錦司顿、人聲如沸芒粹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽化漆。三九已至,卻和暖如春钦奋,著一層夾襖步出監(jiān)牢的瞬間座云,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工付材, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朦拖,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓厌衔,卻偏偏與公主長得像璧帝,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子富寿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容