查询 Hibernate 或 HQL 不是 return 结果
Query Hibernate or HQL not return result
我正在尝试通过两种方式通过 id 进行查询,但是,结果未 returned。我的代码有什么问题吗?我用两种方式制作:
public Laudo buscarLaudoPorCodigo(Long idLaudo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
try {
System.out.println(idLaudo);
Criteria consulta = this.session.createCriteria(Laudo.class);
consulta.add(Restrictions.idEq(idLaudo));
Laudo resultado = (Laudo) consulta.uniqueResult();
System.out.println(resultado);
System.out.println(idLaudo);
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
第二种方式:
public Laudo teste2(Long idLaudo) {
System.out.println("veio da visao "+idLaudo);
String hql = "select l from Laudo l where l.id_laudo = :idLaudo";
Query consulta = this.session.createQuery(hql);
consulta.setLong("id_laudo", idLaudo);
System.out.println("veio do bd "+consulta);
return (Laudo) consulta.uniqueResult();
}
还有我的豆子:
public void buscarLaudoPorCodigo() {
try {
LaudoDAOHibernate laudoDAOHibernate = new LaudoDAOHibernate();
Laudo resultado = laudoDAOHibernate.buscarLaudoPorCodigo(laudo.getIdLaudo());
if (resultado == null) {
System.out.println("laudo nao encontrado");
} else {
laudo = resultado;
}
} catch (RuntimeException erro) {
}
}
这两个查询,都是Hibernate,as in hql 不是returnid
我设法使用相同的会话搜索方法解决了问题,就像以前一样,使用的是会话 class。正确的代码如下所示:
public Laudo buscarLaudoPorCodigo(Long idLaudo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
try {
Criteria consulta = sessao.createCriteria(Laudo.class);
consulta.add(Restrictions.idEq(idLaudo));
Laudo resultado = (Laudo) consulta.uniqueResult();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
我正在尝试通过两种方式通过 id 进行查询,但是,结果未 returned。我的代码有什么问题吗?我用两种方式制作:
public Laudo buscarLaudoPorCodigo(Long idLaudo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
try {
System.out.println(idLaudo);
Criteria consulta = this.session.createCriteria(Laudo.class);
consulta.add(Restrictions.idEq(idLaudo));
Laudo resultado = (Laudo) consulta.uniqueResult();
System.out.println(resultado);
System.out.println(idLaudo);
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}
第二种方式:
public Laudo teste2(Long idLaudo) {
System.out.println("veio da visao "+idLaudo);
String hql = "select l from Laudo l where l.id_laudo = :idLaudo";
Query consulta = this.session.createQuery(hql);
consulta.setLong("id_laudo", idLaudo);
System.out.println("veio do bd "+consulta);
return (Laudo) consulta.uniqueResult();
}
还有我的豆子:
public void buscarLaudoPorCodigo() {
try {
LaudoDAOHibernate laudoDAOHibernate = new LaudoDAOHibernate();
Laudo resultado = laudoDAOHibernate.buscarLaudoPorCodigo(laudo.getIdLaudo());
if (resultado == null) {
System.out.println("laudo nao encontrado");
} else {
laudo = resultado;
}
} catch (RuntimeException erro) {
}
}
这两个查询,都是Hibernate,as in hql 不是returnid
我设法使用相同的会话搜索方法解决了问题,就像以前一样,使用的是会话 class。正确的代码如下所示:
public Laudo buscarLaudoPorCodigo(Long idLaudo) {
Session sessao = HibernateUtil.getSessionFactory().openSession();
try {
Criteria consulta = sessao.createCriteria(Laudo.class);
consulta.add(Restrictions.idEq(idLaudo));
Laudo resultado = (Laudo) consulta.uniqueResult();
return resultado;
} catch (RuntimeException erro) {
throw erro;
} finally {
sessao.close();
}
}