java Spring Data/JPA -如何通过名称检查记录是否已经存在?

a6b3iqyw  于 2023-04-28  发布在  Java
关注(0)|答案(3)|浏览(171)

我有一个关于Spring Data/JPA的问题,我想知道是否有任何方法可以检查一个名称是否已经在数据库中注册了一些带有参数的函数。
我有个想法 使用布尔值,但我不知道如何正确执行它以获得预期的结果。

@Query(nativeQuery= true, value="SELECT first_name FROM students WHERE first_name = :firstname")
boolean findByFirstname(String firstname);
bvjveswy

bvjveswy1#

JPA不支持EXISTS样式查询的布尔返回类型。
但是,您可以通过创建一个default方法来解决这个问题,该方法具有所需的签名并调用JPA方法。

default boolean existsByFirstname(String firstname) {
    return !findByFirstname(firstname).isEmpty();
}
    
@Query(nativeQuery= true, value="SELECT first_name FROM students WHERE first_name = :firstname")
List<String> findByFirstname(String firstname);
91zkwejq

91zkwejq2#

如参考文档中所述,您可以使用exists关键字并声明派生查询:

boolean existsByFirstname(String firstname);

这将投射到标识符上,并检查是否至少返回了一个结果。

nwo49xxi

nwo49xxi3#

可能对于原生查询来说不是必需的。

List<String> findByNameIgnoreCaseContaining(String firstName);

在您的服务中,您可以使用if语句检查响应是否为空或与null不同。

相关问题