2 * In Samsung Ukraine R&D Center (SRK under a contract between)
3 * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4 * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
6 package com.samsung.samserver.repository;
8 import com.samsung.samserver.domain.User;
9 import org.springframework.data.domain.Page;
10 import org.springframework.data.domain.Pageable;
11 import org.springframework.data.jpa.repository.EntityGraph;
12 import org.springframework.data.jpa.repository.JpaRepository;
13 import org.springframework.stereotype.Repository;
14 import java.util.List;
15 import java.util.Optional;
16 import java.time.Instant;
19 * Spring Data JPA repository for the User entity.
22 public interface UserRepository extends JpaRepository<User, Long> {
24 Optional<User> findOneByActivationKey(String activationKey);
26 List<User> findAllByActivatedIsFalseAndCreatedDateBefore(Instant dateTime);
28 Optional<User> findOneByResetKey(String resetKey);
30 Optional<User> findOneByEmailIgnoreCase(String email);
32 Optional<User> findOneByLogin(String login);
34 @EntityGraph(attributePaths = "authorities")
35 Optional<User> findOneWithAuthoritiesById(Long id);
37 @EntityGraph(attributePaths = "authorities")
38 Optional<User> findOneWithAuthoritiesByLogin(String login);
40 @EntityGraph(attributePaths = "authorities")
41 Optional<User> findOneWithAuthoritiesByEmail(String email);
43 Page<User> findAllByLoginNot(Pageable pageable, String login);