Java 休眠:HQL不工作

Java 休眠:HQL不工作,java,sql,hibernate,Java,Sql,Hibernate,我使用where子句和和在hibernate应用程序中编写了一个SQL查询 这是一种方法 public List<Comobility> getComobilityByIdComobilityItemsAndIdPatient(int idComobilityItems, int idPatient, Session session) { Query query = session.createQuery("from Comobility where comobility_i

我使用where子句和在hibernate应用程序中编写了一个SQL查询

这是一种方法

public List<Comobility> getComobilityByIdComobilityItemsAndIdPatient(int idComobilityItems, int idPatient, Session session) {
    Query query = session.createQuery("from Comobility where comobility_items_idcomobility_items= :idComobilityItems and patient_idpatient= :idpatinet");
    query.setParameter("idComobilityItems", idComobilityItems);
    query.setParameter("idpatinet", idPatient);
    List<Comobility> list = query.list();
    return list;
} 
public List getcomobilitybyidcomobilityitems和idPatient(int-idComobilityItems,int-idPatient,会话会话){
Query Query=session.createQuery(“来自可移动性,其中可移动性项目可移动性项目可移动性项目=:可移动性项目和患者可移动性项目=:可移动性”);
query.setParameter(“idComobilityItems”,idComobilityItems);
query.setParameter(“idPatient”,idPatient);
List=query.List();
退货清单;
} 
但这是行不通的。没有任何例外或错误。实际上,没有任何结果


有什么想法吗?

您需要检查日志中生成的SQL,并根据数据库执行它。如果查询被编译并且没有返回任何记录,则表示没有特定条件的记录


要通过Hibernate生成SQL,请在Hibernate配置中将属性
show\u SQL
设置为
true

您应该这样尝试

  • 用try-catch块包装您的方法。我相信查询有错误,然后它将进入catch块

    public List<Comobility>getComobilityByIdComobilityItemsAndIdPatient(int idComobilityItems, int idPatient, Session session) {
        try {
             logger.debug("xxxx")
             //do comething
        } catch (Exception e) {
            e.printStackTrace();
        }
    } 
    
    public listGetComobilityByIdcomobilityItems和idPatient(int-idComobilityItems,int-idPatient,会话会话){
    试一试{
    logger.debug(“xxxx”)
    //干什么
    }捕获(例外e){
    e、 printStackTrace();
    }
    } 
    
  • 确保您的方法参数不是
    null

  • 检查您的列表是否为空

  • 为了进行检查,可以使用IDE调试器或在方法中放置一些日志


  • 您得到了什么错误/异常“但这不起作用”如何?它以什么方式不起作用?你看到了什么行为?这是一个编译错误吗?是否在运行时引发异常?你从数据库中得到意外的结果了吗?!怎么了?@mhasan:没有任何例外或错误。这就是我感到困惑的原因。“无结果”是指代码生成的列表是空的吗?您已经验证了数据库中是否存在符合您搜索条件的数据?@nbrooks:并非所有问题都会产生错误,您有13K+分,即使您是一名学生,您也应该认真了解这一点。