我有三张桌子。
可以有多个论坛,所以我想添加一个方法,从给定论坛中的成员返回我的所有答案。
我不知道我能做什么的hibernate查询。 要获取绑定到给定成员的答案列表,请执行此操作
return HibernateUtil.query(Answer.class,"authorId",member.getId());
如何从特定论坛的成员那里获得答案清单。
答案 0 :(得分:1)
你对表格的考虑太多而对对象的考虑不够。 Hibernate是一种对象关系映射工具。
我在这里看到四个对象:
其他关系取决于关系是单向还是双向。
开始考虑对象和Hibernate会更容易。
如果您没有或不想要对象,请不要使用Hibernate。在这种情况下,只需直接使用JDBC,执行JOIN,并将结果映射到对象或数据结构中。
答案 1 :(得分:0)
使用HQL:
public List<Answer> getMemberAnswers(Forum forum, Member member) {
return getSession().createQuery(
"select f.answers from Forum f " +
"join f.member m " +
"where f.id = :forumId " +
"and m.id = :memberId")
.setInteger("forumId", forum.getId())
.setInteger("memberId", member.getId())
.list();
}