@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 


猜你喜欢

转载自www.cnblogs.com/modestlin/p/12467195.html