2021-07-03 21:48:27 +00:00
|
|
|
package org.datasurvey.repository;
|
|
|
|
|
|
|
|
import java.time.Instant;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Optional;
|
|
|
|
import org.datasurvey.domain.User;
|
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
|
import org.springframework.data.domain.Page;
|
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
|
import org.springframework.data.jpa.repository.EntityGraph;
|
|
|
|
import org.springframework.data.jpa.repository.JpaRepository;
|
|
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Spring Data JPA repository for the {@link User} entity.
|
|
|
|
*/
|
|
|
|
@Repository
|
|
|
|
public interface UserRepository extends JpaRepository<User, Long> {
|
|
|
|
String USERS_BY_LOGIN_CACHE = "usersByLogin";
|
|
|
|
|
|
|
|
String USERS_BY_EMAIL_CACHE = "usersByEmail";
|
|
|
|
|
|
|
|
Optional<User> findOneByActivationKey(String activationKey);
|
|
|
|
|
|
|
|
List<User> findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant dateTime);
|
|
|
|
|
|
|
|
Optional<User> findOneByResetKey(String resetKey);
|
|
|
|
|
|
|
|
Optional<User> findOneByEmailIgnoreCase(String email);
|
|
|
|
|
|
|
|
Optional<User> findOneByLogin(String login);
|
|
|
|
|
|
|
|
@EntityGraph(attributePaths = "authorities")
|
2021-07-25 04:53:38 +00:00
|
|
|
@Cacheable(cacheNames = USERS_BY_LOGIN_CACHE)
|
2021-07-03 21:48:27 +00:00
|
|
|
Optional<User> findOneWithAuthoritiesByLogin(String login);
|
|
|
|
|
|
|
|
@EntityGraph(attributePaths = "authorities")
|
|
|
|
@Cacheable(cacheNames = USERS_BY_EMAIL_CACHE)
|
|
|
|
Optional<User> findOneWithAuthoritiesByEmailIgnoreCase(String email);
|
|
|
|
|
|
|
|
Page<User> findAllByIdNotNullAndActivatedIsTrue(Pageable pageable);
|
|
|
|
}
|