JPA Map <string,string>与xml </string,string>的映射

时间:2011-08-08 15:33:03

标签: java hibernate jpa orm persistence

我正在尝试为Map<String,String>字段定义 xml映射

无法修改实体类,因此我使用的是JPA映射的XML变体,但无法弄清楚正确的语法。

有人可以解释如何为这种情况编写JPA xml - 或者明确说明使用xml这是不可能的,但可以使用Storing a Map<String,String> using JPA中提到的注释......

我甚至会知道这是不可能的 - 理想情况下,当它引用说明它的规范部分时。

3 个答案:

答案 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 ...请参阅此处:

http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Example_of_a_map_key_column_relationship_XML

您遇到的困难是您要映射到基本类型而不是实体类型。我不会说这是不可能的,但我会从经验中说这很痛苦。