你能不能告诉我是否可以使用几个新的Object制作一个选择的JPQL 像这样:
选择新的QueryOfSelectionList(新参数(q1,q1t),新参数(q2,q2t)) 来自......
我成功做到这样:new QueryOfSelectionList(q1,q1t,q2,q2t) 但是我不喜欢,因为我会增加参数的数量,并且可能有几个param的建构者(q1,q1t或q1)。
我试过这个例子,但我有:例外:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:新
此异常适用于新的param(q1,q1t)。
感谢您的帮助。
基督教
答案 0 :(得分:2)
在http://docs.oracle.com/cd/E12839_01/apirefs.1111/e13946/ejb3_langref.html发布的文件中,我们看到:
以下是构造函数表达式的语法:
constructor_expression :: = new constructor_name(constructor_item {, constructor_item} *)
进一步说:
可以在SELECT列表中使用构造函数来返回一个或多个构造函数 Java实例。指定的类不需要是实体或 要映射到数据库。构造函数名称必须完整 合格。
一个例子是:
SELECT NEW com.company.PublisherInfo(pub.id,pub.revenue,mag.price) FROM Publisher pub JOIN pub.magazines mag WHERE mag.price> 5.00
因此无法使用Select new QueryOfSelectionList ( new param(q1, q1t), new param(q2, q2t) ) From
之类的表达式。希望这会有所帮助。