我這兩個欄位是子查詢查出來的用了個別名,就想著到物體類弄兩個臨時變數去接收,結果其他地方也需要用到同一個物體類,就報錯找不到這兩個欄位

然后到網上找了@Transient 說是可以不映射物體類,但是又弄的這兩個臨時變數又接收不了值
拜托各位執教執教!!!
uj5u.com熱心網友回復:
附上sql:@Query(value = "SELECT r.*," +
"new com.fxweb.pojo.SelectResult((SELECT `name` FROM menu WHERE menu.category_Level1=r.parent_Id AND category_Level2=0) as category_Lv2," +
"(SELECT `name` FROM menu WHERE id=(SELECT menu.parent_Id FROM menu WHERE category_Level1=r.parent_Id AND category_Level2=0)) as category_Lv1)" +
" FROM resources AS r ")
Page<Resources> findBackDataAll(Example<Resources> example, Pageable pageable);
uj5u.com熱心網友回復:
SelectResult這個類里面有你要的那兩個欄位嗎,如果有的話new com.fxweb.pojo.SelectResult的時候把資料庫欄位對應到物體屬性名稱,比如 資料庫_type as 物體_type, 同時SelectResult類頭上加上@AllArgsConstructor注解;如果SelectResult不是你需要的回傳物件,則需要你自己建一個物件接收你這些子表查出來的欄位
uj5u.com熱心網友回復:
JPA對復雜查詢的支持比較弱,沒有自己寫查詢來的快,好理解,所以我的建議是查詢的結果還是用自己的DTO來接收,不要用物體。但如果要用DTO來接的話,你就需要做ResultTransformer的自定義實作,否則用JPA提供的會麻煩的要死。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/71454.html
標籤:Web 開發
上一篇:大神們,我用命令列生成jacoco覆寫率報告時,報告一直為零,有大神知道解決方法嗎
下一篇:Invalid character found in method name. HTTP method names must be tokens
