我想在 Hibernate 中执行以下查询?
select count(*) from login where emailid='something' and password='something'
假设您的
login
表由 LoginClass
类映射,并带有 emailid
和 password
实例变量。然后你将执行类似的操作:
Query<?> query = session.createQuery(
"select count(*) from LoginClass login where login.emailid=:email and login.password=:password");
query.setParameter("email", "something");
query.setParameter("password", "password");
Long count = (Long)query.uniqueResult();
它应该返回
count
您正在寻找的结果。您只需根据您的类和参数名称调整名称即可。
结果返回 BigDecimal,您需要将其从 Bigdecimal (java.math.BigDecimal) 转换为 Long,这样就不会出现错误,解决方案如下:
Query query = session.createSQLQuery(
"select count(*) from login where login.emailid=:email and login.password=:password");
query.setString("email", "something");
query.setString("password", "password");
Long count = ((BigDecimal) query.uniqueResult()).longValue();
您可以在 Hibernate 6 中这样查询:
public int getCount() {
int result = 0;
try {
session.beginTransaction();
result = session.createNativeQuery("select count(*) from user", Integer.class).uniqueResult();
session.getTransaction().commit();
} catch (Exception exception) {
exception.printStackTrace();
}
return result;
}