2016-07-27 190 views
1

當我嘗試與我的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(...) , ..... 

SOLUTION
既然我們不能有一個構造函數內的構造,因爲它是在JPQL非法我們按照在這裏同樣的方法解決此問題: https://stackoverflow.com/a/12742926/1383538

+0

您可以添加由日誌 –

+0

提出的查詢,它是一個'QuerySyntaxException',因此沒有生成冬眠查詢 – Youssef

回答

3

這是非法的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規範

+0

謝謝你,所以我必須找到另一種方式嗎? – Youssef