如何验证数据库中是否存在记录?

Tim*_*man 1 hibernate java-ee

我需要验证数据库中是否存在记录,但无论我传递给以下代码的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)

May*_*urB 8

尝试使用投影来获得结果.

    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)