簡體   English   中英

映射地圖 <Interface,Interface> 與Hibernate

[英]Mapping Map<Interface,Interface> with Hibernate

嘿,我有一張下面的地圖*給我帶來了很多麻煩:

Map<MetricSourceInterface, AliasesInterface>

MetricSourceInterface是一個具有簡單屬性的實體。 AliasesInterface是一個只有Id和字符串列表的實體。

Hibernate正在創建數據庫模式,因此無論如何都不會有任何問題。

另一方面,這是嘗試映射的一個子問題:

Map<MetricSourceInterface, List<String>>

有誰知道解決這個問題的正確方法?

這只有一個限制,我不想為AliasesInterface或List創建UserType

Thx提前:)


*用pstanton的修正編輯:)

只要AliasesInterface確實是Hibernate意義上的實體 ,映射它確實沒有問題:

@OneToMany(targetEntity=AliasInterface.class)
@MapKeyManyToMany(targetEntity=MetricSourceInterface.class,  joinColumns=@JoinColumn(name="metric_source_id"))
private Map<MetricSourceInterface, AliasesInterface> myMap;

注意,上面假設AliasInterfaceMetricSourceInterface都是實體; 如果它們確實是接口,則需要參考其具體實現。

請記住, @MapKeyManyToMany是對JPA的Hibernate擴展。 有關映射集合的更多詳細信息/示例在Hibernate文檔中

更新 :使用XML映射文件的相同方法:

<map name="myMap">
  <key column="owner_id"/> <!-- FK to owner entity table -->
  <map-key-many-to-many column="metric_source_id" class="MetricSourceInterface"/>
  <one-to-many class="AliasesInterface"/>
</map>

這里有更多細節其他示例

暫無
暫無

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

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