日期:2014-05-18  浏览次数:20757 次

hibernate不支持“:=”这样的sql语句?
我需要实现一个排序功能,用hibernate直接调用sql语句,在sql语句里有这样的语法 @a:=@a+1
但是:在hibernate里是一个占位符,不支持这样的语法,该怎么办?

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

我需要实现一个排序功能,用hibernate直接调用sql语句,在sql语句里有这样的语法 @a:=@a+1
但是:在hibernate里是一个占位符,不支持这样的语法,该怎么办?


扯淡,那是你SQLServer自己发明的语言,SQL里没这东西。

你到底懂不懂,mysql里就有这东西,非set语句赋值必须用:=


SQL在所有关系型数据库通用。Orm框架也支持。

数据库除了SQL还支持自己的扩展语言
Oracle这种东西叫PL/SQL SQLServer 叫T-SQL Mysql基本照抄T-SQL。
没有orm框架支持这些玩意,除非你封装成过程。

你到底懂不懂?


------解决方案--------------------
Session session = HibernateSessionFactory.getSession();
Criteria criteria = session.createCriteria(UserInfo.class);
criteria.add(Restrictions.and(Restrictions.eq("userName", "sunqi");
for (Object o : criteria.list()) {
   System.out.println((UserInfo) o);
}

试试这个