关于javaweb的dao层sql语句的问题
其他都没问题,是sql语句提示错误Expectedpositionalparametercount:2,actualparameters:[18]。。。。。publicL...
其他都没问题,是sql语句提示错误 Expected positional parameter count: 2, actual parameters: [18] 。。。。。
public List getSelWsq(Integer id){
List<TEnterprise> list = new ArrayList<TEnterprise>();
String hql = "from TEtpSubsidies e where e.countyId=? and e.years='2014' and e.orgid not in (select es.orgid from TEtpSubsidies es where es.countyId=? and es.years='2015')";
/*String hql = "FROM TEnterprise et WHERE et.welfareNo in ("
+ "select e.welfareNo from TEtpSubsidies e "
+ "where e.countyId=? and e.years='2014')"; 可用*/
Query query = this.getSession().createQuery(hql);
query.setParameter(0,id);
/* query.setParameter(1,etpApp.getSbsqIn());*/
list = query.list();
return list;
}
在数据库sqlserver中 select * from T_EtpSubsidies e where e.countyId='18' and e.years='2014' and
e.orgid not in(select es.orgid from T_EtpSubsidies es
where es.countyId='18' and es.years='2015')
无问题可以查出
在添加 query.setParameter(1,id); 后,提示 could not resolve property: orgid of: com.welfare.entity.TEtpSubsidies。。。。。。
上面复制错了,是sql:FROM TEnterprise et WHERE et.welfareNo in (select e.welfareNo from TEtpSubsidies e where e.countyId=? and e.years='2014' and e.orgid not in (select es.orgid from TEtpSubsidies es where es.countyId=? and es.years='2015')) 展开
public List getSelWsq(Integer id){
List<TEnterprise> list = new ArrayList<TEnterprise>();
String hql = "from TEtpSubsidies e where e.countyId=? and e.years='2014' and e.orgid not in (select es.orgid from TEtpSubsidies es where es.countyId=? and es.years='2015')";
/*String hql = "FROM TEnterprise et WHERE et.welfareNo in ("
+ "select e.welfareNo from TEtpSubsidies e "
+ "where e.countyId=? and e.years='2014')"; 可用*/
Query query = this.getSession().createQuery(hql);
query.setParameter(0,id);
/* query.setParameter(1,etpApp.getSbsqIn());*/
list = query.list();
return list;
}
在数据库sqlserver中 select * from T_EtpSubsidies e where e.countyId='18' and e.years='2014' and
e.orgid not in(select es.orgid from T_EtpSubsidies es
where es.countyId='18' and es.years='2015')
无问题可以查出
在添加 query.setParameter(1,id); 后,提示 could not resolve property: orgid of: com.welfare.entity.TEtpSubsidies。。。。。。
上面复制错了,是sql:FROM TEnterprise et WHERE et.welfareNo in (select e.welfareNo from TEtpSubsidies e where e.countyId=? and e.years='2014' and e.orgid not in (select es.orgid from TEtpSubsidies es where es.countyId=? and es.years='2015')) 展开
2个回答
展开全部
sql有几个?就得设置几个参数query.setParameter(1,id); 第一个参数代表?号出现的顺序,从0开始,第二个参数是参数值。
你的sql中有3个?,一个被注视掉,所以设置query.setParameter(1,id);是要添加的。
could not resolve property: orgid of: com.welfare.entity.TEtpSubsidies这是另一个错误了,是你的实体配置有问题,去找对应的entity
你的sql中有3个?,一个被注视掉,所以设置query.setParameter(1,id);是要添加的。
could not resolve property: orgid of: com.welfare.entity.TEtpSubsidies这是另一个错误了,是你的实体配置有问题,去找对应的entity
更多追问追答
追问
sql使用传入的一个参数两次,之前的sql复制错了你看一下我的补充,注释掉的语句可以查出
追答
去找entity,然后和数据库中的字段去匹配,应该有写错的地方。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询