我需要验证数据库中是否存在记录,但无论我传递给以下代码的id如何,它都不会显示任何内容.记录是否存在.
session = HibernateUtil.getSession();
session.beginTransaction();
Query q = session.createQuery("select count(*) from Users where id = :id");
q.setInteger("id", id);
Integer count = (Integer)q.uniqueResult();
if(count > 0) {
System.err.println(">");
}
else {
System.err.println("<");
}
session.getTransaction().commit();
session.close();
Run Code Online (Sandbox Code Playgroud)
我也使用了以下代码,但仍然有同样的问题
try{
session = HibernateUtil.getSession();
session.beginTransaction();
Users users = null;
users = (Users) session.load(Users.class, id);
}catch(Exception e){
System.err.println("<");
}
Run Code Online (Sandbox Code Playgroud)
尝试使用投影来获得结果.
session = sessionFactory.openSession();
session.beginTransaction();
Criteria criteria = session.createCriteria(Users.class);
criteria.add(Restrictions.eq("Id", Id));
criteria.setProjection(Projections.rowCount());
long count = (Long) criteria.uniqueResult();
session.getTransaction().commit();
if(count != 0){
System.out.println("present");
else{
System.out.println("absent");
}
Run Code Online (Sandbox Code Playgroud)