如何使用Hibernate And Spring检查表中是否存在已存在的值

时间:2014-04-12 06:29:17

标签: java spring hibernate

嗨我在我的控制器上有这个方法。我想要的是当我传递地名时必须检查是否存在..如果它存在则返回true否则

 @Override
        @Transactional
        public boolean alreadyExists(String place) {
            boolean flag=false;
            sessionFactory.getCurrentSession().createQuery("from Place where place_Name='$"+place+"'");

            return flag;
        }

1 个答案:

答案 0 :(得分:2)

没有任何断言反对现有查询的正确性或有效性......

有一种简单的方法:如果您预计只有一个Place存在 ,那么您可以使用uniqueResult,将返回实体实例(如果存在),或null如果它不存在:

@Tranasctional
public boolean alreadyExists(String place) {
    return sessionFactory.getCurrentSession()
                         .createQuery("from Place where place_Name=:place")
                         .setParameter("place", place)
                         .uniqueResult() != null;
}

您还可以将结果作为列表获取,并检查列表是否为空(因此表示存在结果)。

@Tranasctional
public boolean alreadyExists(String place) {
    List result = sessionFactory.getCurrentSession()
                         .createQuery("from Place where place_Name=:place")
                         .setParameter("place", place)
                         .list();
    return !result.isEmpty();
}