2015-08-03 18 views
1

当写一个标准查询针对某些类B被某些类A过滤时,B是否需要ManyToOne关系是明确的?这样做会创建A和B之间的双向关系..这对我来说并不合适,因为B不一定关心A.标准查询的目标类是否需要对其被过滤的对象的引用?

此查询的目标是获得某个A的所有Bs,然后通过一些自己的属性进一步过滤Bs。

+0

你应该在你的问题更具体。什么版本的休眠? Java的?你有没有尝试过一些东西?如果是这样,请发布您的代码。如果不是,请清楚你并不知道如何开始。 – JoeG

+0

我只是问一个普遍的问题 – ds011591

+0

重申,当我概念化A和B对象时,B不应该与A有明确的关系,所以给它一个感觉就像是一种代码味道。另一方面,当关系存在时,查询似乎更容易编写 – ds011591

回答

0

你不能对某些不存在的东西做任何事情,这意味着你不能在查询中引用一个不存在的实体属性。

但是你可以在任何一个方向的单向关联应用滤镜:

select b from A a join a.bs b where a.something = something and b.something ...