java - Spring Data JPA 和 Exists 查询

标签 java hibernate jpa spring-data jpql

我正在使用 Spring Data JPA(以 Hibernate 作为我的 JPA 提供程序)并希望定义一个 exists 方法并附加 HQL 查询:

public interface MyEntityRepository extends CrudRepository<MyEntity, String> {

  @Query("select count(e) from MyEntity e where ...")
  public boolean existsIfBlaBla(@Param("id") String id);

}

当我运行这个查询时,我得到一个 java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Boolean

HQL 查询的外观如何才能使其工作?我知道我可以简单地返回一个 Long 值,然后在 count > 0 时检查我的 Java 代码,但是这种解决方法应该不是必需的,对吧?

最佳答案

Spring Data JPA 1.11 现在支持存储库查询派生中的 exists 投影。

参见文档 here .

在您的情况下,以下将起作用:

public interface MyEntityRepository extends CrudRepository<MyEntity, String> {  
    boolean existsByFoo(String foo);
}

关于java - Spring Data JPA 和 Exists 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392129/

相关文章:

hibernate - 如何使用 JPA Criteria Api 使用文字参数调用 db2 数据库函数?

java - 多模块 hibernate 应用程序

java - 无法使用 C3P0 在 Karaf 中创建 JPA 连接池

java - 使用 Postgres 获取 "Duplicate key value violates unique constraint"

java - hibernate/JPA : ManyToMany and OneToMany relationship on same attribute

java - 如何将 @Action 方法放置在与 Swing 组件不同的类中?

java - 按长度存储和排序单词的最有效方法?

java - Azure - HDInsight Hbase 数据插入失败

java - Java 应用程序的 Linux 启动脚本

java - 如何在 JPA 中查询组合对象?