簡體   English   中英

基於列值的JPA目標實體類型

[英]JPA target entity type based on column value

我正在嘗試將一些舊代碼從手工持久性遷移到Hibernate。 這里的問題是特殊的映射,其中目標實體類型/表由列值定義。

示例數據庫表:

表“關系”:

  • id-我的主鍵
  • parentType-一個指定父級類型的字符(例如,“ I”表示Item表中的對象,“ Category”表中的“ C”)
  • parentId-parentType表中的主鍵
  • childType-指定子類型的字符
  • childId-子表中的主鍵

問題是所有這些類型(例如Item或Category)具有相同的抽象父對象,稱為GenericObject,它沒有自己的表。 繼承是TABLE_PER_CLASS。

不好的是,通過parentId或childId您無法分辨出類型,這些ID在這些表中不是唯一的。 您需要查看parentType和childType。

現在我該如何在Hibernate中映射這種瘋狂? 我想將父級和子級映射到GenericObject變量,該變量實際上是Item或Category的實例。

有任何想法嗎?

Hibernate有@Any@ManyToAny為目標時的實體由類和非唯一ID標識的情況下的注釋。

我認為在您的情況下,由於以這種方式標識了父母和子女,因此您需要創建帶有以@Any注釋的父母和子女的Relation實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM