如何获得用户的电子邮件?

时间:2019-05-06 04:08:39

标签: spring jpa

我需要让用户通过jpa发送电子邮件

我有这个代码:

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

    User findByEmail(@Param("email") String email);
    User findById(@Param("id") Long id);
}

当我尝试这个时:

 User owner = userRepository.findById(user.getId()); //yes
    User user=userRepository.findByEmail(email);//no

我的班级用户是:

@Entity
@Table(name = "User")
public class User implements Serializable {

    private static final long serialVersionUID = -3009157732242241606L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "name")
    private String name;

    @Column(name = "password")
    private String password;

    @Column(name = "email")
    private String email;

    public User() {
    }
    //getters and setters
}

我想通过用户的电子邮件获取用户,如果我可以通过其ID获取,但我也需要通过电子邮件获取

2 个答案:

答案 0 :(得分:1)

在您的模型类中,“电子邮件”不是唯一的,因此它将返回多行以避免添加

 @Entity
 @Table(name = "User")
 public class User implements Serializable {
    .....
     @Column(unique=true,...)// .. add your extra
     private String email;
    .....
 }

答案 1 :(得分:0)

如果您希望返回前1个结果,则可以更改方法

meshgrid

使用

User findByEmail(@Param("email") String email);