我想不仅要尝试解决错误,还应该四处询问并尝试找到解决此映射挑战的正确方法。有没有人发现通过JPA映射多维数组成功和满意?
AFAIK,标准JPA不支持嵌套集合。JPA Wiki书中有一个很好的章节介绍了这个主题(我只引用了其中的一部分):
嵌套的集合,地图和矩阵
在对象模型中,通常具有复杂的集合关系,例如的a
List的Lists(即矩阵)或的aMap的Maps或Map的Lists的a 等等。不幸的是,这些类型的集合很难映射到关系数据库。JPA不支持嵌套的集合关系,通常最好更改对象模型,以避免它们使持久性和查询更容易。 一种解决方案是创建一个包装嵌套集合的对象。
例如,如果一个
Employee有一个Map的Project由一个键控小号String项目类型和值的List或Project秒。为了对此进行映射ProjectType,可以创建一个新类来存储project-
type和OneToManytoProject。…
那就是我的建议。例如:
@Entitypublic class TestClass { @Id private long id; @oneToMany(mappedBy="testClass") private List<MatrixRow> matrix;}MatrixLine将会在哪里(省略许多细节):
@Entitypublic class MatrixRow { @Id private long id; @ManyToOne private TestClass testClass; @CollectionOfElements private List<BigDecimal> row;}或者, 也许 您可以使用自定义用户类型(我不太确定这将如何工作)。
或者(毕竟,您已经在使用非便携式注释)看看这个问题,看看如何扩展Hibernate:



