簡體   English   中英

如何使用Hibernate將實體映射到公用表?

[英]How do I map entities to a common table with Hibernate?

我有一些簡單的實體,它們存儲在具有以下結構的簡單“代碼”表中(全部存儲為字符字段):

code_fieldname   pk
code_value       pk
code_comment
code_field1
code_field2

我要映射的一個對象的數據存儲在以下形式的表中

code_fieldname = "segment"
class = Segment
segment.id = code_value
segment.name = code_comment
segment.markup = code_field1 (decimal property)

因此,段記錄都具有“ code_fieldname” =“ segment”,其ID為“ code_value”的值。

這種結構的映射是什么? 我正在使用基於XML的映射。

我已經設法通過對類使用繼承來解決此問題,然后在關系上使用公式屬性。 實體的定義如下:

<class name="GeneralCode" table="code_mstr">
  <composite-id name="key">
    <key-property name="key" column="code_fieldName" type="string"/>
    <key-property name="value" column="code_value" type="string"/>
  </composite-id>
  <discriminator column="code_fieldName" type="string" insert="false"/>
  <subclass name="Segment" discriminator-value="segment">
    <property name="name" type="string" column="code_comment"/>
  </subclass>
</class>

現在,我可以在如下所示的關系中使用它:

<many-to-one name="segment" class="Segment"
             lazy="false" insert="false" update="false">
  <formula>'segment'</formula>
  <column name="segment"/>
</many-to-one>

請注意,該公式需要帶引號的“段”值,因為它始終是字段關鍵字,即在所有情況下都為code_fieldname =“段”。

暫無
暫無

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

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