后台一表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
如何才能输出正确结果呢?
实体名为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
如何才能输出正确结果呢?
不行将
"select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent = :con"
改成笨点儿的
"select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent ="
+ con
select antecedent.antecedents 我觉得不用这 之前自己定义函数
select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent =?
然后query.setString(0,i.toString());
.createQuery("select antecedent.antecedents from Antecedent as antecedent where antecedent.consequent = :con");//怀疑次句写的有毛病
q.setString("con",l.get(i).toString() );
n=q.list();
//加一句试下.
sessionj.close(); ....