JavaHibernate返回空结果

JavaHibernate返回空结果,java,hibernate,resultset,Java,Hibernate,Resultset,我正在为现有的web应用程序进行更新。我编写了一些类来创建表和添加/删除数据。出于某种原因,我可以插入数据,但即使表中有数据,也无法检索结果。我使用返回结果的相同代码创建了一个测试类。但是,当将我的类作为服务调用时,resultSet每次都为null。还请注意,我可以使用代码从其他一些现有表中提取数据,而不是从我创建的表/对象中提取数据。此外,我还从调试器获取了SQL查询,并对数据库运行了它,并获得了结果 代码如下: public DiscountCode getDiscountCodeDeta

我正在为现有的web应用程序进行更新。我编写了一些类来创建表和添加/删除数据。出于某种原因,我可以插入数据,但即使表中有数据,也无法检索结果。我使用返回结果的相同代码创建了一个测试类。但是,当将我的类作为服务调用时,resultSet每次都为null。还请注意,我可以使用代码从其他一些现有表中提取数据,而不是从我创建的表/对象中提取数据。此外,我还从调试器获取了SQL查询,并对数据库运行了它,并获得了结果

代码如下:

public DiscountCode getDiscountCodeDetails(String code) {

    Session session = HibernateUtil.openSession();
    Transaction transaction = session.beginTransaction();
    String query = "from DiscountCode where isActive = 1 and discountCode = :replace";
    **DiscountCode discountCode** =  (DiscountCode) session.createQuery(query).setParameter("replace", code).uniqueResult();
    transaction.commit();
    session.close();

    return discountCode;
}
折扣代码始终为空

此测试代码在一个简单的类中工作,该类具有一个main: 字符串replace=“TEXT10”


我已经为此奋斗了很长一段时间,需要尽快克服这一点。任何帮助都将不胜感激。

您确定代码是您所认为的吗?如果您刚刚使用hibernate创建了表,是否需要刷新数据库,或者是否需要通知hibernate数据库中有一个新表?可能是缓存相关的问题……好的,我发现了问题。它与传递给方法的内容有关。我将变量“code”硬编码为一个已知的良好值,并得到我想要的结果。在Eclipse调试器中,我看到代码的值是{“code”:“text10”}(对象?)。我不明白为什么这是一个对象而不是一个字符串。卡亚曼,你的答案是正确的。把你的评论作为一个答案,我会把它标记为正确的。谢谢你给我指明了正确的方向!出了什么问题?我正在吃晚饭。
    Session session = HibernateUtil.openSession();
    Transaction transaction = session.beginTransaction();
    String query = "from DiscountCode where isActive = 1 and discountCode = :replace";
    DiscountCode discountCode =  (DiscountCode) session.createQuery(query).setParameter("replace", replace).uniqueResult();

    transaction.commit();
    session.close();
    System.out.println(discountCode.getDiscountCodeName());