(1) hibernate中使用LIKE报错 unexception token: %
这里大致的解决方法,就是这样做:like ? 然后query.setParameter(0,"%"+q+"%");好像是因为hibernate不兼容的问题吧。
(2) hibernate中使用limit时报错 unexception token:limit
这里是因为hibernate不允许使用limit,但是它也提供了相应的方法:
query.setFirstResult(start);
query.setMaxResults(rp);
可以设置第一个数据和最大偏移量,和limit效果一样的。
(3)hibernate我们进行merge操作后,无法立即刷新数据,但是数据库中已经是新的数据,重启服务器发现可以显示出来。
解决方法:因为可能使用的是query.list()的方法获取数据,但是merge之后在一级缓存中的还是旧的数据,但是id是一样的,所以它就不会重新获取数据,这里我们可以在merge之后,这样操作:
Session session =HibernateSessionFactory.getSession();
session.clear();
session.close();