将普通的sql语句改写成用Hibernate框架中的HQL语句。

SELECTb.*,MAX(l.endDate)FROMbookinforbLEFTJOINlentbooklONb.bookID=l.bookIDWHEREb.book... SELECT b.*,MAX(l.endDate) FROM bookinfor b LEFT JOIN lentbook l ON b.bookID = l.bookID WHERE b.bookName LIKE '%语%' AND b.author LIKE '%王%' GROUP BY b.bookID; 展开
 我来答
dreamrealise5
2013-10-12 · 超过18用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:45.4万
展开全部

我猜想你的目的是用hibernate框架来解决上面的查询问题吧,那你不一定非要把sql改为hql语句,因为hibernate中是可以支持原生态的sql语句的,我来给你写一个例子吧

List list=new ArrayList();
String sql = "SELECT b.*,MAX(l.endDate) FROM bookinfor b LEFT  JOIN  lentbook l ON b.bookID = l.bookID WHERE b.bookName LIKE '%语%' AND b.author LIKE '%王%' GROUP BY b.bookID;";
Session session = this.getSession();
Query query = session.createSQLQuery(sql);
list=query.list();
session.close();

其中,session.createSQLQuery(sql)这句话指明了hibernate用的是原生态的sql语句

希望对你有所帮助。

追问
用原生态的sql得到的结果需要重新封装,用createQuery得到的就不用重新封装了。
追答
createSQLQuery返回结果跟createQuery结果是一个样子的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式