2010-10-20 90 views
1

我想知道我是否可以在JPA中加入2个命名查询。作为一个例子,我有以下两个命名查询加入JPA中的命名查询

1 - 获取所有活跃用户
2 - 让所有的用户对给定公司

是否有可能对我来说,加入以上两个命名查询,并得到 获取给定公司的所有活动用户。

回答

1

请勿为此使用NamedQuery。直接将查询字符串传递给方法是最好的选择。

您必须明白方法createNamedQuery(String name)需要命名查询的名称。鉴于createNamedQuery(String qlString)需要查询字符串,所以这符合您的需要。

或者

为了这个目标,创建一个单独的NamedQuery

+0

为什么海报想要使用HQL?他说JPA,而不是Hibernate。 – DataNucleus 2010-10-20 15:11:42

+0

@DataNucleus:噢。这是我的默认设置中的“默认”。对不起,现在修改。 – 2010-10-21 02:11:47

+0

谢谢Adeel,我会检查一下 – sameera207 2010-10-21 14:27:34

1

是否有可能对我来说,加入以上两个命名查询和得到所有对于一个给定公司的活跃用户。

不,这是不可能的。可以编写一个智能命名查询,它可以采用参数来表示所有情况(如果可能)或使用多个命名查询。

如果您使用的是JPA 2.0,则Criteria API可能是编写动态查询的另一个(更好的)选项。