gpt4 book ai didi

Hibernate Criteria 连接 3 个表

转载 作者:行者123 更新时间:2023-12-02 20:16:37 26 4
gpt4 key购买 nike

我正在寻找一个 hibernate 标准来满足以下要求:

文档.类映射到角色角色ID

角色.类有联系人联系方式

Contact.class名姓氏

我想在 Contact 类中搜索 First 或 LastName 并检索已连接的文档列表。

我尝试过这样的事情:

session.createCriteria(Dokument.class)
.setFetchMode("role",FetchMode.JOIN)
.setFetchMode("contact",FetchMode.JOIN)
.add(Restrictions.eq("LastName","Test")).list();

我收到错误,无法解析类“Dokument”的属性“LastName”

有人可以解释为什么联接在 Dokument 上搜索而不是在所有联接表上搜索吗?

最佳答案

获取模式仅表示必须获取关联。如果要添加对关联实体的限制,则必须创建别名或子条件。我通常更喜欢使用别名,但是 YMMV:

Criteria c = session.createCriteria(Dokument.class, "dokument");
c.createAlias("dokument.role", "role"); // inner join by default
c.createAlias("role.contact", "contact");
c.add(Restrictions.eq("contact.lastName", "Test"));
return c.list();

这当然在Hibernate reference manual中有很好的解释。 ,以及 javadoc for Criteria甚至还有例子。阅读文档:它有很多有用的信息。

关于Hibernate Criteria 连接 3 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8726396/

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