gpt4 book ai didi

java - Spring Data 从方法名称生成查询时出错

转载 作者:行者123 更新时间:2023-11-30 02:30:32 24 4
gpt4 key购买 nike

我正在尝试在 Spring Data JPA 存储库中实现自定义方法。

我正在使用从方法名称生成查询,我有这样的东西:

List<Person> findByFirstNameOrLastName(String key);

我为该方法指定了一个参数,因为我有一个可以匹配 firstNamelastName 的搜索键,但在应用程序启动时我得到了这个应用程序:

Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'personRepository':
Invocation of init method failed; nested exception is java.util.NoSuchElementException

我想这个错误取决于方法签名...

那么,有没有办法使用查询创建为我的方法指定单个参数,或者我应该实现自定义逻辑来实现此目的?

最佳答案

List<Person> findByFirstNameOrLastName(String firstName, String lastName);

是的,这是方法签名的问题。当方法名称中存在“or”条件时,Spring Data 需要 2 个参数。您需要为这两个参数传递一个key值。

或者,您可以在该方法上编写一个@Query,例如:

@Query("SELECT p FROM person p WHERE p.lastName=:key OR p.firstName =:key")
List<AccountInformation> findByFirstNameOrLastName(@Param("key") String key);

关于java - Spring Data 从方法名称生成查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44410660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com