我是Play和Hibernate的新手,正在开发一个项目。我喜欢它迄今!如何使用Play,MySQL和Hibernate自定义查询ManyToMany表?
我遇到了一个新的问题最近。我有一张桌子。然后,我在该类中引用了一个ManyToMany关系。所以Hibernate创建这个表格就好了,我有peopleid1和peopleid2,人们可以和其他各种人建立关系,反之亦然。
我现在需要在该表上运行一些复杂的查询,并且遇到了一些麻烦,因为我想将它放到它自己的类中,但不确定这是最好的方法还是使用hibernate。 JPQL是答案吗?任何帮助或想法表示赞赏!
让我们使用堂兄弟作为一个例子。我有一个班级/模型人,这些人有堂兄弟,可以是堂兄弟。现在我在我的代码中有这个:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "Cousins",
joinColumns = { @JoinColumn(name = "personid") },
inverseJoinColumns = { @JoinColumn(name = "cousinid") })
public Set<User> cousins;
这很好,并创建完美的连接表,我可以输入数据和正如预期的那样。但是,我试图写一个函数卡住了。我可以找到所有登录人员都有堂兄弟的人,但无法找到登录的用户是堂兄弟的所有人。我认为这是做到这一点的正确方法,但我非常倾向于让Cousins成为自己的类/模型,当我这样做的时候工作正常,但我不确定Hibernate如何管理关系。
什么问题?如果您问的是JPQL是使用Hibernate执行请求的方式,则答案为是。如果你问连接表是否必须映射为实体,答案是否定的。阅读hibernate参考文档:解释它。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#collections-bidirectional –