@Query的使用 初步總結


一、Object[]數組
@Query("select addrId,addrDetails from Addr where id=:id")
Object findAddrInfoObject(@Param("id") Integer id);
這是Object返回值其實是Object[]數組

二、結果放入同一個類
@Query("select new Addr(addrId,addrDetails) from Addr where id=:id")
Addr findAddrInfoAddr(@Param("id") Integer id);
結果放入同一個類:Addr中需要有Addr(addrId,addrDetails)的構造函數。
三、結果封裝到另外一個類
@Query("select new com.example.model.ReturnModel(a.addrId,a.addrDetails) from Addr as a where a.id=:id")
ReturnModel findAddrInfoModel(@Param("id") Integer id);
ReturnModel有ReturnModel(a.addrId,a.addrDetails)構造函數,且是全限定名稱com.example.model.ReturnModel。
如果不是全限定名稱,則會報以下錯誤:
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:
Unable to locate class [ReturnModel] [select new ReturnModel(a.addrId,a.addrDetails) from 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM