getHibernateTemplate()查询条件为对象时,hql如何写

anykcry 2011-08-11 09:36:14
class A{

private String id;

public getId...(){...}
public setId...(){...}

}

class B{

private String id;

private A a;

public getId....(){....}
public setId....(){....}

public getA....(){.....}
public setA....(){.....}

}


问题:查询B的实体集合 hql="from B"
查询条件等A的,所有B集合 hql="from B b where a.id=?" 这样写法是错误的

有没有更简便的hql写法解决? jdbc就不用说了
...全文
226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dandan0912 2011-08-11
  • 打赏
  • 举报
回复
加上cascade="all"
dandan0912 2011-08-11
  • 打赏
  • 举报
回复
你得设级联 才能用hql="from B b where b.a.id=?"
这种方法查

你的hql语句不对,配置也不对
anykcry 2011-08-11
  • 打赏
  • 举报
回复
<many-to-one name="qcAssignEntity"
class="com.flex.cc.qc.batchassign.entity.QcBatchAssignEntity"
column="ASSIGN_ID" update="false" insert="true"
outer-join="true" lazy="false" >
</many-to-one>

这是xml配置,,请朋友们
帮我看看
anykcry 2011-08-11
  • 打赏
  • 举报
回复
String sql="from QcBatchAssignEntity qcb where qcb.id='"+qid+"'";
QcBatchAssignEntity entity=(QcBatchAssignEntity)getHibernateTemplate().find(sql).get(0);
hql="from QcRoleAssignEntity qc where qc.qcAssignEntity="+entity;
List<QcRoleAssignEntity> list=getHibernateTemplate().find(hql);

现在这样操作也不行,错误提示:
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested exception is org.hibernate.exception.DataException: could not execute query
magiccxj 2011-08-11
  • 打赏
  • 举报
回复
要用外连接吧
飓风zj 2011-08-11
  • 打赏
  • 举报
回复
映射文件 写好,还有报了什么错 最好 贴出来啊
hql="from B b where b.a.id=?"
anykcry 2011-08-11
  • 打赏
  • 举报
回复
配置映射都做了

单个查都没问题
shoth 2011-08-11
  • 打赏
  • 举报
回复
映射做了没
dandan0912 2011-08-11
  • 打赏
  • 举报
回复
hql="from B b where b.a.id=?"

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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