首页 > 解决方案 > Spring JPA 从 where 子句中选择

问题描述

我正在使用 Spring JPA 执行所有数据库操作。但是我不知道如何从 Spring JPA 中的表中选择特定的行(通过简单的 WHERE 子句连接)?

例如:

SELECT * FROM user where name=agrawalo AND email=abc@example.com 

用户等级:

@Entity
Class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long userId;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private String email;

   // Getters and Setters
}

存储库:

public interface UserRepository extends JpaRepository<User, Integer> {

}

标签: javajpaspring-data-jpa

解决方案


如果您使用spring-data-jpa. 您可以编写一个方法名称,spring-data 将根据您的方法名称制定一个查询并获取结果。

public interface UserRepository extends JpaRepository<User, Integer> {
  Optional<User> findByNameAndEmail(String name, String email)
}

像上面一样创建一个方法并使用所需的参数调用该方法。
如果您不想(不建议)使用Optional,您可以使用 User 作为返回类型。在这种情况下,如果没有与您的参数匹配的条目,那么您将返回 null。


推荐阅读