Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 - Fatal编程技术网

Java Hibernate本机查询创建返回空结果

Java Hibernate本机查询创建返回空结果,java,hibernate,Java,Hibernate,我的DAO类中有这样的方法: public List<Protocolo> buscarProtocolos(int situacao){ List<Protocolo> protocolos = null; protocolosPorSitucao = null; String sql = "select * from hibernatedb.protocolo where situacao_id = ?"; em = Hiberna

我的DAO类中有这样的方法:

public List<Protocolo> buscarProtocolos(int situacao){

    List<Protocolo> protocolos = null;
    protocolosPorSitucao = null;
    String sql = "select * from hibernatedb.protocolo where situacao_id = ?";

    em = HibernateManager.getEntityManager();
    protocolosPorSitucao = em.createNativeQuery(sql, Protocolo.class);
    protocolosPorSitucao.setParameter(1, situacao);

    em.getTransaction().begin();
    logger.info("Buscando protocolos por situacao : "+ situacao);
    protocolos = (List<Protocolo>) protocolosPorSitucao.getResultList();
    logger.info("Protocolos encontrados: "+protocolos.size());
    em.getTransaction().commit();
    em.close();

    return protocolos;
}
这意味着hibernate返回了0个结果,因为我的列表为空

代码中的错误在哪里


注意:创建NativeQuery时,我也需要设置数据库。这是因为NativeQuery会忽略在
persistence.xml

上建立的配置。您是否尝试过使用
:situacaoId
而不是
(然后调用
setParameter(situacaoId,1)
。此外,我认为您应该使用1L,但我不确定如何在db中声明您的id。如果我将?更改为:stiaucaoId,它将返回一个错误:
具有该位置的参数[1]不存在
是否使用该
protocolositocao.setParameter(“situacaoId”,1)
(或1L)。还将protocolositocao声明为
Query protocolositocao
。现在我这样做了:
String sql=“select*from hibernatedb.protocolo,其中situacao\u id=:situacao\u id”;
protocolositocao.setParameter(“situacao\u id”,1L);
它没有给我任何错误,但仍然没有结果。解决了我的问题。我以前更改了persistence.xml以测试与Oracle数据库的兼容性,但忘记将其更改回我的postgresql数据库,因为它拥有所有数据。
Hibernate: select * from hibernatedb.protocolo where situacao_id = ?
0