将普通的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;
展开
1个回答
展开全部
我猜想你的目的是用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结果是一个样子的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询