Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA:通过给定列的值列表获取实体列表_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java JPA:通过给定列的值列表获取实体列表

Java JPA:通过给定列的值列表获取实体列表,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我不熟悉JPA和Hibernate 在一个用例中,我需要从数据库中获取给定电子邮件列表中存在相关电子邮件的所有用户 为此,我编写了一个自定义JPA查询,如下所示: @Query("SELECT u from User u where u.email in :emailIds") List<User> findUsersByEmailIds(@Param("emailIds") List<String> emailId

我不熟悉JPA和Hibernate

在一个用例中,我需要从数据库中获取给定电子邮件列表中存在相关电子邮件的所有用户

为此,我编写了一个自定义JPA查询,如下所示:

    @Query("SELECT u from User u where u.email in :emailIds")
    List<User> findUsersByEmailIds(@Param("emailIds") List<String> emailIdList);
@Query(“从用户u中选择u,其中u.email位于:emailIds”)
列出FindUserByEmailIds(@Param(“emailIds”)列表emailIdList);

但是,我想知道,有没有更好的方法可以做到这一点呢?

正如毗湿奴所评论的,下面是解释:

假设在用户实体中有如下字段:

private String email;
List<User> findByEmailIn(List<String> emailIdList);
然后,在您的存储库中,您可以这样做:

private String email;
List<User> findByEmailIn(List<String> emailIdList);
List findByEmailIn(List emailIdList);

此处需要注意的重要关键点是
findByEmailIn
中的
大写字母E
,而在您的实体中,此字段是
电子邮件
(小写字母E)。通过这种方式,您可以完全消除
@Query
语句。

如果方法名称为
List findAllByEmailIn(List emailIdList),则可以避免使用
@Query
注释