Как получить пользователя на электронную почту? - PullRequest
1 голос
/ 06 мая 2019

Мне нужно, чтобы пользователь отправил электронное письмо с 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
}

Я хочу получить пользователя по электронной почте пользователя, если я могу получить его по его идентификатору, но мне также нужно получить его по электронной почте

Ответы [ 2 ]

1 голос
/ 06 мая 2019

У вас класс модели «электронная почта» не является уникальным, поэтому он будет возвращать несколько строк, чтобы избежать добавления

 @Entity
 @Table(name = "User")
 public class User implements Serializable {
    .....
     @Column(unique=true,...)// .. add your extra
     private String email;
    .....
 }
0 голосов
/ 06 мая 2019

Если вы хотите, чтобы был возвращен первый результат, вы можете изменить метод

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

с

User findOneByEmail(String email);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...