hibernate 一查询问题

pangpangtian 2008-06-04 07:57:12
后台一表antecedent(前件) 字段为Id,antecedents,consequent(后件)
实体名为Antecedent
现想通过consequent查询antecedents
l中存储若干consequent内容,以每个l中的元素作为consequent进行查询,并输出结果。
代码如下:
Antecedent antecedent = new Antecedent();
List n = null;
for (int i = 0; i < l.size(); i++) {
Session sessionj = HibernateSessionFactory.getSession();
boolean b = sessionj.isOpen();
Query q = sessionj
.createQuery("select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent = :con");//怀疑次句写的有毛病
q.setString("con",l.get(i).toString() );
n=q.list();
if(!n.isEmpty()){
System.out.println(n.get(0));
}
else {
System.out.println("error");
}
输出的结果为若干error
如何才能输出正确结果呢?
...全文
96 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Shine_Panda 2008-06-07
  • 打赏
  • 举报
回复
Query q = sessionj
.createQuery("select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent = :con");//怀疑次句写的有毛病
q.setString("con",l.get(i).toString() );
n=q.list();
//加一句试下.
sessionj.close();


....
  • 打赏
  • 举报
回复
毛病肯定是SQL
select antecedent.antecedents 我觉得不用这 之前自己定义函数
burningice44 2008-06-04
  • 打赏
  • 举报
回复
你确定hql语句中用的都是Antecedent的属性名吗?如果确定,
不行将
"select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent = :con"
改成笨点儿的
"select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent ="
+ con
CHR_WHY 2008-06-04
  • 打赏
  • 举报
回复
用顺序占位符啊
select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent =?
然后query.setString(0,i.toString());
pangpangtian 2008-06-04
  • 打赏
  • 举报
回复
啥意思?没怎么太明白。

67,538

社区成员

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

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