【问题标题】:setString(0,string) not setting the string in javasetString(0,string) 没有在java中设置字符串
【发布时间】:2013-05-17 04:21:27
【问题描述】:

下面是我在 WebsiteAvailability 类的 getUrlDetails() 方法中的代码

方法内部:getUrlDetails(String selUrl)

List<WebsiteAvailability>avaList=new ArrayList<WebsiteAvailability>

String selquery="select w.statusCode,w.updateTime,s.statusCodeValue from WebsiteAvailability     w,StatusCodes s where w.statusCode=s.statusCodeNo and w.url=?";
avaList=session.createQuery(selquery).setString(0,selUrl).list();

这是 hibernate java 应用程序。StatusCode 和 WebsiteAvailability 是 POJO 类(由 hibernate 生成)。所以在 HQL 查询中我使用实体类而不是数据库表名。我使用的是 postgresql。 我的问题是我没有得到与 where 条件匹配的项目列表。代替 ?(placeholder) 它没有接受提供的输入。它正在接受 ?本身 谁能帮帮我..

【问题讨论】:

    标签: java hibernate hql


    【解决方案1】:

    使用 setString(1, ...) 编辑:不,它是 setString(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() + “...”。
    • 如何给出完全限定的名称。这里的网站可用性和状态码表之间有外键关系
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2013-12-30
    • 2010-09-24
    相关资源
    最近更新 更多