HQL inner join问题

_Suten 2015-06-15 04:11:50
protected List findPage(String hql, int star, int pagesize) {
List list = null;
hql="from A a inner join a.B b on a.id=b.sid and b.ifContact=1";
try {
session = HibernateSessionFactory.getSession();
tx=session.beginTransaction();
System.out.println("代入HQL语句");
Query query = session.createQuery(hql);
query.setFirstResult(star);
query.setMaxResults(pagesize);
System.out.println("---开始装入list---");
list = query.list();
System.out.println("---完成list---");
tx.commit();
} catch (Exception e) {
if (tx != null)
tx.rollback();
} finally {
HibernateSessionFactory.closeSession();
}
return list;
}


运行后查不出结果. 也不输出 --开始装入list--


就是Query query = session.createQuery(hql);卡死 不运行 请问是HQL错了吗?
...全文
305 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Strive_MrL 2015-06-18
  • 打赏
  • 举报
回复
hql="from A a inner join a.B b where b.ifContact=1";
xiaovhao 2015-06-17
  • 打赏
  • 举报
回复
a是一个表吧,a.B也是一个表?
sinat_29109359 2015-06-17
  • 打赏
  • 举报
回复
hql="from A a where a.id in(select b.sid from B b where b.ifContact=1)";这样写试试
_Suten 2015-06-16
  • 打赏
  • 举报
回复
引用 1 楼 CodeofWorker 的回复:
楼主,a.B是什么对象?能这样写?
就不用a.B 直接B as b 也是不可以的。
_Suten 2015-06-16
  • 打赏
  • 举报
回复
引用 3 楼 gezhengyun 的回复:
hql 是 :inner join ... with... SQL是:inner join ... on... 网上随便一查就有了,能自己查的就尽量自己查,查不到再跟别人问,对自己有益无害
用with也一样不可以的
乱世丶桃花 2015-06-15
  • 打赏
  • 举报
回复
hql 是 :inner join ... with... SQL是:inner join ... on... 网上随便一查就有了,能自己查的就尽量自己查,查不到再跟别人问,对自己有益无害
rick-he 2015-06-15
  • 打赏
  • 举报
回复
你将hql转化为sql语句到数据库试下
CodeofWorker 2015-06-15
  • 打赏
  • 举报
回复
楼主,a.B是什么对象?能这样写?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧