java - 如何使用 Hibernate Spring 检查表中已存在的值

标签 java spring hibernate

您好我在我的 Controller 上有这个方法。我想要的是当我传递一个地名时它必须检查它是否存在..如果它存在则返回 true 否则返回 false

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

            return flag;
        }

最佳答案

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

有一种简单的方法:如果您期望只有一个 Place ever 存在,那么您可以使用 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();
}

关于java - 如何使用 Hibernate Spring 检查表中已存在的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23026973/

相关文章:

Java Date Hibernate截止时间

java - 将oracle日期字段对象转换为java日期

java - 强制 JNLP 文件自行更新

java - 我在哪里可以找到 Java/Python 中良好的 ajax 支持?

java - Spring - 根据 bean 验证 Controller 内的输入

java - Hibernate session 工厂关闭会删除所有自动生成的表

java - Spring Data错误由: org. hibernate.QueryException引起:无法解析属性

java - Mule ESB REST 测试(curl 和 Eclipse)

Java - 检查字符串之间的空格

java - 在 docker 容器中运行 eureka 服务