日期:2014-05-20  浏览次数:20695 次

高分求:HQL如何实现乘法
oracle或mssql库.
select r.salary*12+r.bonus from Table1 r
*号好象HQL不认,大家帮忙吧

------解决方案--------------------
帮顶, 应该可以把?
------解决方案--------------------
用Hibernate的话把hibernate.cfg.xml中改动下看有没效果
XML code

<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>

------解决方案--------------------
忘了以前是怎么用的了。
------解决方案--------------------
如果要再HQL中用乘法,无法保证乘了之后字段长度是否够
------解决方案--------------------
不是*号不认识,而是无法识别这个运算之后的映射属性
通过下面的另一种方式可以实现你的功能
select new Object(r.salary*12+r.bonus ) from ……

其中Object的构造器需要在映射文件中自己指定
------解决方案--------------------
hibernate
除了可以用HQL
还可以用SQL
createSQLQuery()


createSQLQuery
public SQLQuery createSQLQuery(String queryString)
throws HibernateExceptionCreate a new instance of SQLQuery for the given SQL query string. 

Parameters:
queryString - a SQL query 
Returns:
SQLQuery 
Throws: 
HibernateException

试下,看行吗?