JPA:如何使用spring-data搜索多个属性

时间:2018-04-24 03:10:48

标签: hibernate spring-data spring-data-jpa

我想根据从UI传递的多个参数从用户和联系人表中获取数据,例如username,userType,emailId,phoneNumber等组合在一起。

User Entity类如下所示: `

@Entity
@Table(name = "user")
public class User
{
    private String usertId;
    private Collection<Contact> contacts;
    private String userType;
    private username;

    @OneToMany
    @JoinColumn(name="user_id", referencedColumnName="user_id")
    public Collection<Contact> getContacts()
    {
        return contacts;
    }

    //getters & setters
} 

And its child class

@Entity
@Table(name = "contact")
public class Contact
{
    private  String phoneNumber;
    private  String zipCode;
    private  String emailId;
    private  String addressText;


    //getters & setters
}

And the UserRepository class is:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

    User findByContacts_ZipCode(String zipCode); //Individual parameter search is working perfectly fine
}

` 如何在JPA中为来自父对象或子对象字段的多个字段创建搜索条件,并且可以从UI传递任何一个/部分或全部字段。

1 个答案:

答案 0 :(得分:1)

你可以通过扩展来做到这一点 存储库中的JpaSpecificationExecutor并为其创建规范。 Please refer this