gpt4 book ai didi

java - 在 hibernate 中加入数组

转载 作者:行者123 更新时间:2023-12-01 11:11:27 24 4
gpt4 key购买 nike

我有 2 个实体:A 和 B。

@Entity
@Table(name = "A")
class A{
@Id
private long id;

@OneToMany(mapped by="a")
private Set<B> b;
}

@Entity
@Table(name = "B")
class B{
@Id
private long id;

@ManyToOne
@JoinColumn(name="a")
private A a;
}

当我尝试做类似的事情

Query q=sessionFactory.openSession().createQuery("select a.id, bArray
from A as a join a.b as bArray");

我得到的不是 B 的集合,而是一个 B 对象。我怎样才能获得A类和与之相关的B类对象的集合? IE。在调试器中没有包含 1 个元素的 Set,只有 B 元素。

最佳答案

Query q=sessionFactory.openSession().createQuery("select a.id, bArray
from A as a join a.b as bArray");

通过上面的查询,您将只获得 B 的一个对象而不是集合,因为基本上查询只是执行 A 和 B 之间的联接并返回所有可能的元组(从 A 中选择 a , b 作为内部联接 B 为b)

您可以设置自定义结果转换器来进行自定义结果处理,例如 this

但无论如何,在您的情况下,您可以简单地通过使用连接获取来预获取“b”对象和“a”对象,如下查询。

Query q=sessionFactory.openSession().createQuery("select a from A as a join fetch a.b ");

关于java - 在 hibernate 中加入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308052/

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