gpt4 book ai didi

java - 具有双嵌入键的 SqlResultSetMapping

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:57 29 4
gpt4 key购买 nike

我有一个包含 A 类和 B 类的数据模型,两者都有多个主键。我尝试将 A 中的所有元素放入 ResultSetMapping 中以在查询中使用,但我认为因为 A 有一个实体(B)键,所以我得到一个异常。

class A {
@Id
String id;

@Id
String version;

@Id
B b;
}

class B{
@Id
String id;

@Id
String type;
}

@SqlResultSetMapping(name = "Mapping", entities = {
@EntityResult(entityClass = A.class, fields = {
@FieldResult(name = "id", column = "a_id"),
@FieldResult(name = "version", column = "a_version"),
@FieldResult(name = "b.id", column = "a_b_id"),
@FieldResult(name = "b.type", column = "a_b_type")
}

我认为由于 B 是一个单独的实体,我在查询中收到错误:

java.lang.ArrayIndexOutOfBoundsException: null at java.lang.System.arraycopy(Native Method) ~[na:1.8.0_131] at org.hibernate.internal.util.collections.ArrayHelper.slice(ArrayHelper.java:131) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]

最佳答案

首先,A 和 B 上没有定义 @IdClass。它们用于 EntityManager.find() 等示例。

其次,您必须添加 @ManyToOne 注释才能使其正常工作

@Id
@ManyToOne
B b;

关于java - 具有双嵌入键的 SqlResultSetMapping,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47499965/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com