一、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