2016-06-22 79 views
0

你能告诉我,如果有可能做出选择JPQL有几个新的对象 这样的:JPA:与选择JPQL几个新

选择新QueryOfSelectionList(新参数(Q1,q1t),新的参数(Q2 ,q2t)) 从...

我做成功是这样的:新QueryOfSelectionList(Q1,q1t,Q2,q2t) ,但我不喜欢,因为我会增加则params的数量,有几个可能的构造函数(q1,q1t或q1)。

我试过的例子,但我有:异常:org.hibernate.hql.internal.ast.QuerySyntaxException:意外的标记:新

这个例外是新的参数(Q1,q1t)的。

感谢您的帮助。

基督教

回答

2

。在http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13946/ejb3_langref.html公布的文件中,我们看到:

以下是构造函数表达式的语法:

constructor_expression :: = NEW constructor_name(constructor_item {, constructor_item } *)

此外,它是s援助:

一个构造函数可以在SELECT列表中用来返回一个或多个 Java实例。指定的类不需要是要映射到数据库的实体或 。构造函数名称必须完全符合 。

一个例子是:

SELECT NEW com.company.PublisherInfo(pub.id,pub.revenue,mag.price) 从Publisher酒馆JOIN pub.magazines MAG WHERE mag.price> 5.00

因此不可能使用像Select new QueryOfSelectionList (new param(q1, q1t), new param(q2, q2t)) From这样的表达式。希望这可以帮助。