关于 Hibernate Criteria API 的问题

发布于 2024-12-01 12:59:40 字数 309 浏览 0 评论 0原文

我有两个表A和B:

A columns (ID,NameA,BiD)
B columns (ID,NameB)  

ID引用Bid作为外部RelationMapping。 问题是。我的 Hibenate B 实体没有列表,但我的 Hibernate A 实体有 B 实体实例。

select a.* from A a, B b 
where a.BiD=b.ID

我如何在 Hibernate Criteria Api 中执行此查询? 我希望我能解释一下我的问题?

I have a two table A and B:

A columns (ID,NameA,BiD)
B columns (ID,NameB)  

ID is referenced to Bid as foreign RelationMapping.
Here is the problem .My Hibenate B Entity has not got List but My hibernate A entity has got B entity instance.

select a.* from A a, B b 
where a.BiD=b.ID

How can ı do this query in Hibernate Criteria Api?
I hope I can explain my problem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只是一片海 2024-12-08 12:59:41

假设您想要查找具有特定 B ID 的所有 A 实例

Criteria c = session.createCriteria(A.class, "a");
c.add(Restrictions.eq("a.b.id", theIdOfB);
return c.list();

,如果您必须搜索 B 的名称而不是 B 的 ID,则需要一个联接:

Criteria c = session.createCriteria(A.class, "a");
c.createAlias("a.b", "b");
c.add(Restrictions.eq("b.name", theNameOfB);
return c.list();

与往常一样,所有这些都通过 参考文档

Assuming that what you want is to find all A instances having a specific B ID

Criteria c = session.createCriteria(A.class, "a");
c.add(Restrictions.eq("a.b.id", theIdOfB);
return c.list();

If you had to search on B's name rather than B's ID, you would need a join:

Criteria c = session.createCriteria(A.class, "a");
c.createAlias("a.b", "b");
c.add(Restrictions.eq("b.name", theNameOfB);
return c.list();

As always, all this is explained with examples in the reference documentation.

平定天下 2024-12-08 12:59:40

您不需要在查询中加入类。此信息位于映射文件中。如果加载 A,B 也会被加载(可能是延迟加载)。

Criteria c = session.createCriteria(A.class).list();

如果此答案没有帮助,则您忘记提供有关所需查询的一些信息。

You don't need to join the classes in the query. This information is in the mapping file. If you load A's, the B's are loaded (probably lazily) too.

Criteria c = session.createCriteria(A.class).list();

If this answer doesn't help, you forgot to provide some information about the query you need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文