2 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以試試@PostPersist注解。一旦持久化,您的實(shí)體中就會(huì)有一個(gè) id。就像是:
@PostPersist
private void postPersist() {
this.setCode( generateMyCode( getId() ) );
}
只要EntityManager使用它就可以正常工作,字段代碼也應(yīng)該保存到數(shù)據(jù)庫(kù)中。
使用 Spring 存儲(chǔ)庫(kù)時(shí),可能需要save()在初始保存后執(zhí)行額外的操作(我不必這樣做,只有默認(rèn)配置),但您應(yīng)該使用您的配置測(cè)試這種方法。
(與 JPA 標(biāo)準(zhǔn)用法相比,Spring 存儲(chǔ)庫(kù)處理持久性上下文的方式有點(diǎn)不同EntityManager。)

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
您想要的列似乎code
正是該id
列,但具有另一種編碼(基數(shù) 36 而不是基數(shù) 10)。
您不需要存儲(chǔ)它,也不需要為此使用持久性注釋:
要閱讀代碼:在實(shí)體上,只需添加一個(gè)
getCode()
基于id
值計(jì)算它的 getter 方法。對(duì)于按代碼搜索,只需將代碼從基數(shù) 36 轉(zhuǎn)換為基數(shù) 10,然后按 id 搜索。
添加回答
舉報(bào)