hibernate使用中的几个问题

(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();

你可能感兴趣的:(java,数据库,Hibernate,merge)