jpa 多对多关系的标准
我在 Java 中有 2 个 POJO 类,Answer 和 Collaborator,处于多对多关系。
class Answer {
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "ANSWERS_COLLABORATORS", joinColumns = { @JoinColumn(name = "aid") }, inverseJoinColumns = { @JoinColumn(name = "cid") })
private Set<Collaborator> collaborators = new HashSet<Collaborator>(0);
}
Answer
类有一组 Collaborator
,但 Collaborator
不保留一组 Answer
。 我需要从 Hibernate CriteriaQuery 中找到 id 给出的答案的协作者。
我已经使用 Hibernate Criteria
(org.hibernate.Criteria
) 使用结果转换器完成了此操作,但在使用 CriteriaQuery
时我陷入了困境>,因为我没有要给出连接的答案列表。
I have 2 POJO classes in Java, Answer and Collaborator, in a many-to-many relationship.
class Answer {
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "ANSWERS_COLLABORATORS", joinColumns = { @JoinColumn(name = "aid") }, inverseJoinColumns = { @JoinColumn(name = "cid") })
private Set<Collaborator> collaborators = new HashSet<Collaborator>(0);
}
Class Answer
has a set of Collaborator
, but a Collaborator
doesn't keep a set of Answer
.
What I need to do from Hibernate CriteriaQuery
is to find the collaborators for an answer given by id.
I have already done this with Hibernate Criteria
(org.hibernate.Criteria
) using result transformer, but I'm stuck when it comes to using CriteriaQuery
, because I don't have a list of answers to give to the join.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
终于完成了......
这是代码:
It's done, finally...
Here's the code:
使用 HQL:
您可以使用此:
获取与某个协作者关联的所有答案。
这是:
获取与某个答案关联的所有协作者。
使用 JPA2 Criteria API,您可以执行以下操作:
Using HQL:
You can use this:
to get all the Answers associated to a certain Collaborator.
And this:
To get all Collaborators associated to a certain Answer.
Using JPA2 Criteria API you can do something like:
使用标准生成器:
Using criteria Builder :