web-dev-qa-db-fra.com

crudrepository findBy méthode signature avec plusieurs opérateurs?

J'ai une classe d'entité comme celle-ci:

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

Comment écrire la méthode findBy pour la requête ci-dessous en utilisant crudrepository spring data jpa?

select email_id,name from email_details where eamil_id in('[email protected]','[email protected]') and pin_code in('633677','733877')

Je m'attends à la méthode de printemps des données jpa comme ci-dessous mais comment la construire?

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

Je souhaite obtenir la liste des e-mails en un seul hit de base de données.

41
Venkata Rama Raju

La signature suivante fera:

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

Spring Data JPA prend en charge un grand nombre de mots clés pour créer une requête. IN et AND sont parmi eux .

95
Tunaki

Essaye ça:

@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);

Ou ca:

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

Spring Data JPA prend en charge un grand nombre de mots clés pour créer une requête. IN et AND sont parmi eux.

0