我正在尝试为Map<String,String>
字段定义 xml映射。
无法修改实体类,因此我使用的是JPA映射的XML变体,但无法弄清楚正确的语法。
有人可以解释如何为这种情况编写JPA xml - 或者明确说明使用xml这是不可能的,但可以使用Storing a Map<String,String> using JPA中提到的注释......
我甚至会知道这是不可能的 - 理想情况下,当它引用说明它的规范部分时。
答案 0 :(得分:1)
这些原始关系已添加到JPA2中,因此您必须使用JPA2 imeplementation。我用Eclipselink。关键字是“ElementCollection”。这似乎已经在这里讨论过了: Storing a Map<String,String> using JPA
答案 1 :(得分:1)
经过更多时间搜索不同的东西后,我碰巧找到了答案: http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0/new_collection_mappings#XML_2
解决方案是:
<element-collection name="quotes">
<column name="QUOTE"/>
<map-key-column name="Q_DATE"/>
<collection-table name="EBC_QUOTES">
<join-column name="EBC_ID"/>
</collection-table>
</element-collection>
答案 2 :(得分:0)
您尚未指定您正在使用哪个JPA实现,但我认为这应该适用于OpenJPA和Hibernate ...请参阅此处:
您遇到的困难是您要映射到基本类型而不是实体类型。我不会说这是不可能的,但我会从经验中说这很痛苦。