当前位置: 代码迷 >> J2EE >> Hibernate 查询语句的有关问题
  详细解决方案

Hibernate 查询语句的有关问题

热度:53   发布时间:2016-04-19 22:53:27.0
Hibernate 查询语句的问题
Integer total = Integer.parseInt(hibernateTemplate.find("select count(*) from Material m inner join fetch m.material_supplier s where 1=1").listIterator().next().toString());
报hibernate语句错误,这个语句该怎么写呢?
where后面是要加 m表和s表的筛选条件的。
------解决方案--------------------
哥们你也报错误打赢出来啊!这样 别人怎么回答你!
------解决方案--------------------
要用hql语句?
------解决方案--------------------
hql里面不能用*,你把count(*)改成count(1)就可以了
------解决方案--------------------
Material m inner join fetch m.material_supplier  
1、hql不需要join  Class中的属性就可以where 1-1  and m.material_supplier .id=xxx
------解决方案--------------------
你这语句明明sql语句。放在hql里面 肯定报错。
------解决方案--------------------
你这个Material 类里面有material_supplier这个属性吗
------解决方案--------------------
from 后面貌似是不能用子查询和联合查询的。
------解决方案--------------------
hql=" from Material where 1=1 "

public int getCountByHql(String hql) {
try {
String countHql = "select count(*) " + hql;
int count = ((Long) getHibernateTemplate().find(countHql).get(0))
.intValue();
return count;
} catch (RuntimeException ex) {
log.error("find by getCountByHql", ex);
throw ex;
}
}
我是这样查询的 
  相关解决方案