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

时间:2014-09-29 14:06:51

标签: 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 = 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;
}

此查询select * from hibernatedb.protocolo where situacao_id = 1在pgAdmin3中执行时返回一行,但hibernate返回0行。这是从hibernate生成的日志:

Hibernate: select * from hibernatedb.protocolo where situacao_id = ?
0

这意味着hibernate返回0结果,导致我的列表为空。

此代码中的错误在哪里?

P.S。:在创建NativeQueries时,我也需要设置数据库。那是因为NativeQuery忽略了persistence.xml上建立的配置?

0 个答案:

没有答案