使用嵌套构造函数

时间:2016-07-27 18:19:31

标签: java hibernate jpa

当我使用我的custum DTO使用嵌套构造函数尝试此查询时。

select new DTO.foo ( new DTO.boo( ... ) , new DTO.boo( ... ) ) from Foo

我收到了这个错误:

org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected token: new near line 1, column 23 [ select new DTO.foo ( new DTO.boo( ... ) , .....


因为我们在构造函数中没有构造函数,因为它在JPQL中是非法的我们通过在此处遵循相同的方法来解决此问题:https://stackoverflow.com/a/12742926/1383538

1 个答案:

答案 0 :(得分:4)

根据JPQL符号

,这是非法JPQL BNF
constructor_expression ::= NEW constructor_name ( constructor_item {, constructor_item}* )
constructor_item ::= single_valued_path_expression | scalar_expression | aggregate_expression |
    identification_variable

在构造函数中不能有构造函数(即constructor_item不能是constructor_expression)。请参阅JPA规范