Hibernate查询计数逻辑

时间:2017-08-23 12:21:28

标签: java hibernate

public boolean minimoUmSuperUsuario(Usuario usuario, Session sessionExterna) throws HibernateException {  
Criteria crit = sessionExterna.createCriteria(Usuario.class);

return (Long) crit.uniqueResult() > 0;  

}  

继承我需要做的事情:

select * from usuario where superusuario and usuarioativo = true
if  superUsuario and usuarioAtivo == 1 return true 
else false.

我不知道如何把它放在上面的方法中

更新

这就是我所做的

public boolean superUsuarioUm(Usuario usuario, Session sessionExterna) throws HibernateException {
  Criteria crit = sessionExterna.createCriteria(Usuario.class);

  crit.add(Restrictions.eq("superUsuario", usuario.isSuperUsuario()));
  crit.add(Restrictions.eq("usuarioAtivo", usuario.isUsuarioAtivo()));

  final Number value = (Number) crit.uniqueResult();

  if (value.intValue() <= 1) {
    return true;
  } else {
    return false;
  }
}

这看起来是否正确?

2 个答案:

答案 0 :(得分:0)

您只需执行查询并获得结果。

 Criteria crit = // your criteria from your post

 final Number value = (Number) crit.uniqueResult();
 return value.intValue() <= 1;

答案 1 :(得分:0)

要从数据库获取结果,您只需使用crit.uniqueResult()。这将为您提供许多行,但它将是Object。您可以将其转换为(Number)并使用intValue()方法获取int。最后将其与1进行比较,您就完成了! :)