【问题标题】:Cannot persist List using JPA无法使用 JPA 持久化列表
【发布时间】:2014-01-23 04:57:29
【问题描述】:

我正在尝试使用 JPA 将以下类型的对象持久化到数据库中:

@ElementCollection(fetch=FetchType.EAGER)
private Map<String, List<String>> parameters;

它似乎应该可以工作,但是当我运行程序时,我得到:

openjpa.MetaData - OpenJPA cannot map field <package.classname>.parameters efficiently.  It is of an unsupported type. The field value will be serialized to a BLOB by default.

任何帮助将不胜感激。 谢谢。

【问题讨论】:

  • 地图中有什么,是否有定义类型的泛型?
  • @Chris 一个干净的版本:一个两个三个value2
  • 元素集合适用于集合,而您似乎正在尝试映射集合集合 - 列表映射。 JPA 需要一个基本类型或对象类型而不是列表,从而强制对其进行序列化。

标签: jpa openjpa


【解决方案1】:

抱歉,我之前打算回答我自己的问题,但现在我不再有权运行该程序。我认为这是我们的解决方案: @OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.MERGE) 私有列表参数 = new ArrayList();

【讨论】: