crudrepository findBy方法签名有多个in运算符?

时间:2015-09-26 10:58:46

标签: java spring spring-data spring-data-jpa

我有一个像这样的实体类:

@Entity
@Table(name = "EMAIL")
class Email{
    @Id
    @Column(name = "Id")
    Long id;
    @Column(name = "EMAIL_ID")
    String emailId;
    @Column(name = "PIN_CODE")
    String pincode;
}

如何使用crudrepository spring data jpa为以下查询编写findBy方法?

select email_id,name from email_details where eamil_id in('mike@gmail.com','ram@gmail.com') and pin_code in('633677','733877')

我期待如下的spring数据jpa方法,但是如何构建呢?

List<Email> findBy.....(List<String> emails, List<String> pinCodes);

我想在单个数据库中获取电子邮件列表。

2 个答案:

答案 0 :(得分:106)

以下签名将会:

List<Email> findByEmailIdInAndPincodeIn(List<String> emails, List<String> pinCodes);

Spring Data JPA支持大量关键字来构建查询。 IN and AND are among them

答案 1 :(得分:0)

尝试一下:

@Query("select c from Course c where c.course_id=?1 AND c.module_id IN (?2)");
List<Course> findByCourseIdAndModuleIdIn(Long courseId, List<Long> moduleIds);

或者这个:

List<Course> findByCourseIdAndModuleIdIn(Long courseId, List<Long> moduleIds);

Spring Data JPA支持大量关键字来构建查询。 IN和AND都在其中。