java Hibernate连接查询
这可能非常简单,我只是缺少了一些东西,但我有两个类
Event {
String codeword;
int id;
}
及
Person {
String codeword;
}
现在我想得到List<Int> idList
,它包含所有的id's
事件,其中event.codeword=person.codeword
在Hibernate中,我希望有一行:
List idList = session.createQuery("Select a.id From Event a Join Person b On a.codeword=b.codeword").list().
但是,我得到一个关联错误。我没有像IDList这样的对象来实际映射
所以,我试着做List eventList = ("Select a From Event a ... ")
但是,这也给了我一个映射错误
我该怎么做这样的加入
# 1 楼答案
解决这个问题的简单方法是使用
getSession().createSQLQuery
而不是使用getSession().createQuery()
,因为createQuery
与hibernate实体一起工作,需要正确映射但是
建议您以更好的方式使用关系对象,并使用
@OneToMany
、@ManyToOne
和@OneToOne
来处理这些关联因此,您可以尝试这样定义实体:
及
之后取决于哪个HibernateAPI(标准、HQL、JPQL等)你用来获取数据, 您可以调用
event.getPerson()
等等