Hibernate使用sql进行查询的问题
2014-07-07 21:51
531 查看
今天写代码的时候,遇到个问题需要用join把几张表的数据合并查询
"SELECT a.actionName FROM SysAction(类名) a JOIN RoleMenu r ON a.menuId = r.menuId WHERE a.type = 1 ”。
刚开始写进去的时候用的是hql模版查询
getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(hql);
for (int i = 0 ; i < roleIdList.size() ; i++) {
query.setParameter(i , roleIdList.get(i));
}
return query.list();
}
当然,测试的时候各种报错,包括“unexcepted 'ON' in hql。。。。。。”之类各种错。
然后去看API,偶然发现有个方法session.createSQLQuery(sql);这个方法可以直接丢sql语句进去查询。
于是将语句改成"SELECT a.actionName FROM yys_action(表名) a JOIN role_menu r ON a.menuId = r.menuId WHERE a.type = 1 ”。
之后居然能query出结果了。
经常看到有小伙伴问如何在hibernate中使用sql语句,顺道发出来给小伙伴们看一看咯。
"SELECT a.actionName FROM SysAction(类名) a JOIN RoleMenu r ON a.menuId = r.menuId WHERE a.type = 1 ”。
刚开始写进去的时候用的是hql模版查询
getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(hql);
for (int i = 0 ; i < roleIdList.size() ; i++) {
query.setParameter(i , roleIdList.get(i));
}
return query.list();
}
当然,测试的时候各种报错,包括“unexcepted 'ON' in hql。。。。。。”之类各种错。
然后去看API,偶然发现有个方法session.createSQLQuery(sql);这个方法可以直接丢sql语句进去查询。
于是将语句改成"SELECT a.actionName FROM yys_action(表名) a JOIN role_menu r ON a.menuId = r.menuId WHERE a.type = 1 ”。
之后居然能query出结果了。
经常看到有小伙伴问如何在hibernate中使用sql语句,顺道发出来给小伙伴们看一看咯。
相关文章推荐
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- Hibernate使用sql进行查询的问题
- 在Hibernate中使用HibernateTemplate来进行包含sql语句的查询
- Hibernate中使用原生的sql语句进行查询操作
- Hibernate 使用原生SQL查询oracle数据库显示问题(char,Date)
- Hibernate 使用原生SQL查询无法使用别名问题
- Hibernate 使用createSQLQuery查询时,缓存问题