setString(0,string)未在java中设置字符串
下面是我在WebsiteAvailability类的getUrlDetails()方法中的代码 方法内部:getUrlDetails(字符串selUrl)setString(0,string)未在java中设置字符串,java,hibernate,hql,Java,Hibernate,Hql,下面是我在WebsiteAvailability类的getUrlDetails()方法中的代码 方法内部:getUrlDetails(字符串selUrl) ListavaList=newarraylist String selquery=“从网站可用性w中选择w.statusCode、w.updateTime、s.statusCodeValue,其中w.statusCode=s.statusCodeNo和w.url=?”; avaList=session.createQuery(selquery
ListavaList=newarraylist
String selquery=“从网站可用性w中选择w.statusCode、w.updateTime、s.statusCodeValue,其中w.statusCode=s.statusCodeNo和w.url=?”;
avaList=session.createQuery(selquery).setString(0,selUrl.list();
这是hibernate java应用程序。StatusCode和WebsiteAvailability是POJO类(由hibernate生成)。因此,在HQL查询中,我使用实体类而不是数据库表名。我使用postgresql。
我的问题是我没有得到匹配where条件的项目列表。它没有接受提供的输入,而是接受?它本身
有人能帮我吗?使用设置字符串(1,…)
编辑:否,它是设置字符串(0,…)
您可以尝试使用命名参数:
String selquery="select w.statusCode,w.updateTime,s.statusCodeValue from WebsiteAvailability w,StatusCodes s where w.statusCode=s.statusCodeNo and w.url=:selUrl";
avaList=session.createQuery(selquery).setString("selUrl",selUrl).list();
它无法解析属性statusCode。为什么我会这样?请尝试使用完全限定的名称:“…from”+WebsiteAvailability.class.getName()+“…”。如何给出完全限定的名称。在这里,WebsiteAvailability和statuscodes表之间有外键关系
String selquery="select w.statusCode,w.updateTime,s.statusCodeValue from WebsiteAvailability w,StatusCodes s where w.statusCode=s.statusCodeNo and w.url=:selUrl";
avaList=session.createQuery(selquery).setString("selUrl",selUrl).list();