Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java hibernate筛选器不适用于子选择查询_Java_Hibernate_Hql - Fatal编程技术网

Java hibernate筛选器不适用于子选择查询

Java hibernate筛选器不适用于子选择查询,java,hibernate,hql,Java,Hibernate,Hql,我在.xml中声明了如下Hibernate筛选器: 然后在DAO中我称之为: if(filters.containsKey("usuario.login")){ getSession().enableFilter("login").setParameter("loginParam", filters.get("usuario.login")); } if(filters.containsKey("universidad.pais.nombre")){ getSession().e

我在.xml中声明了如下Hibernate筛选器:

然后在DAO中我称之为:

if(filters.containsKey("usuario.login")){
    getSession().enableFilter("login").setParameter("loginParam", filters.get("usuario.login"));
}
if(filters.containsKey("universidad.pais.nombre")){
    getSession().enableFilter("pais").setParameter("paisParam", filters.get("universidad.pais.nombre"));
}
然后是hql查询:

List<Contrato> l=getSession.createQuery("select c from Contrato c").list();
第一个工作正常,但第二个失败。我检测到带有子查询的筛选器失败

奇怪的是,在家里,两者都可以正常工作,但当我将应用程序部署到它必须工作的地方时,第二个过滤器失败了。我无法访问日志或使用System.out.println填充所有代码,因为它不是开发环境。我只给他们发了一份.WAR档案,他们就部署了。我只知道第二个过滤器不工作,因为我看到了过滤数据的屏幕输出

我在家里使用相同的技术,Tomcat 7.0.39和Mysql 5.1.73在windows中运行。
是应用服务器还是Mysql服务器的问题?还有其他想法吗?

我在使用subselect的获取模式时遇到了类似的问题

hibernate内核中似乎有一个bug,在最新版本中已修复


这是

这是数据库版本问题吗?您是否在本地运行生产数据库的最新副本?我只能在家中调用应用程序,但我已用许多hql查询替换了过滤器。