0
我有兩個類:映射結果提出異議
public class User {
String name;
String surname;
}
public class ValueDto {
User user;
Integer value;
}
我的查詢代碼:
String queryText = "SELECT DISTINCT a.* AS user, b.value AS value FROM TABLE_A a, TABLE_B b";
SQLQuery sqlQuery = aSession.createSQLQuery(queryTxt);
sqlQuery.addScalar("value", IntegerType.INSTANCE);
sqlQuery.setResultTransformer(Transformers.aliasToBean(ValueDto.class));
return sqlQuery.list();
的問題是獲取* AS用戶,其中用戶是另一個類。我嘗試了addEntity方法,addScalar和其他我不記得的東西,也試圖在Internet上找到解決方案,但沒有成功。我完全不知道如何使它工作。任何幫助將不勝感激。
好的,但訣竅是我不能使用createQuery方法,我必須使用純SQL,所以我猜測唯一的選擇是createSQLQuery方法。另一種情況是,在我的「a」表中有大約20列,所以創建20個字段的POJO,然後將它們全部傳遞給查詢構造器看起來真的很煩人。 – dzuma
使用Hibernate變形金剛可能是您可以使用原生SQL的最佳選擇。 – kostja
沒錯。但通過變壓器,我列出了DTO的所有領域。我想返回一個包含其他對象和其他字段的對象。 – dzuma