在存在多个组合的情况下,如何最好地使用Spring JPA findByXXX?

在存在多个组合的情况下,如何最好地使用Spring JPA findByXXX?,spring,jpa,Spring,Jpa,我需要编写一个需要使用以下组合查找实体的服务: firstName,lastName,phoneNumber,emailAddress 在我的服务类和存储库中,编写这样的代码将成为一场噩梦。排列越来越难控制了。我仍然想用它来实现这一点,但我想看看是否有更有效的方法来实现这一点 public interface UniversitySearchRepository extends CrudRepository<University, Long> { public CcCase

我需要编写一个需要使用以下组合查找实体的服务:
firstName
lastName
phoneNumber
emailAddress

在我的服务类和存储库中,编写这样的代码将成为一场噩梦。排列越来越难控制了。我仍然想用它来实现这一点,但我想看看是否有更有效的方法来实现这一点

public interface UniversitySearchRepository extends CrudRepository<University, Long> {
    public CcCase findByFirstName(
            @Param("firstName") String firstName);
    
    public CcCase findByLastName(
            @Param("lastName") String lastName);
    
    public CcCase findByEmailAddress(
            @Param("emailAddress") String emailAddress);

    public CcCase findByFirstNameAndLastName(
            @Param("firstName") String firstName, 
            @Param("lastName") String lastName);
    
    public CcCase findByFirstNameAndEmailAddress(
            @Param("firstName") String firstName, 
            @Param("emailAddress") String emailAddress);
    
    public CcCase findByLastNameAndEmailAddress(
            @Param("lastName") String lastName, 
            @Param("emailAddress") String emailAddress);
    ....
public interface university搜索库扩展了crudepository{
公共CcCase findByFirstName(
@Param(“firstName”)字符串firstName);
公共CcCase findByLastName(
@参数(“lastName”)字符串lastName);
公共CcCase findByEmailAddress(
@参数(“emailAddress”)字符串(emailAddress);
public CcCase FindByFirstName和LastName(
@Param(“firstName”)字符串firstName,
@参数(“lastName”)字符串lastName);
公共CcCase FindByFirstNameandMailAddress(
@Param(“firstName”)字符串firstName,
@参数(“emailAddress”)字符串(emailAddress);
公共CcCase FindBylastNameandMailAddress(
@参数(“lastName”)字符串lastName,
@参数(“emailAddress”)字符串(emailAddress);
....
您可以尝试使用:
org.springframework.data.jpa.repository.JpaRepository#findAll(示例)


相关主题:

如果您没有使用
@Query
注释方法,则不必使用
@Param
作为参数前缀。对于您的用例,可能会更有效。我刚才看到了这一点-示例查询正是我所使用的。但是如果有帮助,请将其标记为其他人的解决方案