[英]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;
注意,上面假設AliasInterface
和MetricSourceInterface
都是實體; 如果它們確實是接口,則需要參考其具體實現。
請記住, @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.