我正在使用 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/