[英]Auto Increment not working for Entity class with composite Key
我希望我的復合鍵元素之一自動遞增,並且我正在為我的實體@EmbeddedId
使用嵌入式鍵,因此我無法使用生成值注釋來解決問題,因為在使用@Embeddable
或@GeneratedValue
注釋時會忽略它@EmbeddedId
。
不能使用@GeneratedValue
與@EmbeddedId
, @Embeddable
或@IdClass
,在@GeneratedValue
注釋被忽略。 您必須手動分配值。
檢查以下參考:
https://java.net/jira/browse/GLASSFISH-13567
https://forums.hibernate.org/viewtopic.php?p=2393944&sid=57b20ef2c7de6f6bcba632130987bc22
這是錯誤的,但我會給你答復:
使用類似的東西來獲取下一個 val 並在保存之前進行設置。
在存儲庫中:
@Query(value = "SELECT SQ_CD_PLANO.nextVal FROM dual", nativeQuery = true)
Long getNextSequence();
在職:
Long nextVal = planHistRepository.getNextSequence();
planHist.getPlanHistId().setPlanCode(nextVal);
PlanHist planHistSaved = planHistRepository.save(planHist);
為什么錯了? 因為@EmbeddedId 忽略了自身內部的@GeneratedValue。 但我通過的工作會讓你微笑。
注意:我在此演示中使用 ORACLE 數據庫。 注2:SQ_CD_PLANO 是為自動增量創建的序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.