嗨我在我的控制器上有这个方法。我想要的是当我传递地名时必须检查是否存在..如果它存在则返回true否则
@Override
@Transactional
public boolean alreadyExists(String place) {
boolean flag=false;
sessionFactory.getCurrentSession().createQuery("from Place where place_Name='$"+place+"'");
return flag;
}
答案 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();
}