Package com.epam.ta.reportportal.dao
Interface UserRepository
-
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<User,java.lang.Long>,FilterableRepository<User>,org.springframework.data.jpa.repository.JpaRepository<User,java.lang.Long>,org.springframework.data.repository.PagingAndSortingRepository<User,java.lang.Long>,org.springframework.data.repository.query.QueryByExampleExecutor<User>,ReportPortalRepository<User,java.lang.Long>,org.springframework.data.repository.Repository<User,java.lang.Long>,UserRepositoryCustom
public interface UserRepository extends ReportPortalRepository<User,java.lang.Long>, UserRepositoryCustom
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidexpireUsersLoggedOlderThan(java.time.LocalDateTime lastLogin)java.util.List<User>findAllByEmailIn(java.util.Collection<java.lang.String> mails)java.util.List<User>findAllByLoginIn(java.util.Set<java.lang.String> loginSet)java.util.List<User>findAllByRole(UserRole role)org.springframework.data.domain.Page<User>findAllByUserTypeAndExpired(UserType userType, boolean isExpired, org.springframework.data.domain.Pageable pageable)java.util.Optional<User>findByEmail(java.lang.String email)java.util.Optional<User>findByLogin(java.lang.String login)java.util.Optional<java.lang.Long>findIdByLoginForUpdate(java.lang.String login)java.util.Optional<java.lang.String>findLoginById(java.lang.Long id)java.util.List<java.lang.String>findNamesByProject(java.lang.Long projectId)java.util.List<java.lang.String>findNamesByProject(java.lang.Long projectId, java.lang.String term)voidupdateLastLoginDate(java.time.LocalDateTime lastLogin, java.lang.String username)Updates user's last login value-
Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteById, existsById, findById, save
-
Methods inherited from interface com.epam.ta.reportportal.dao.FilterableRepository
findByFilter, findByFilter
-
Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository
deleteAllInBatch, deleteInBatch, findAll, findAll, findAll, findAll, findAllById, flush, getOne, saveAll, saveAndFlush
-
Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAll
-
Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor
count, exists, findAll, findOne
-
Methods inherited from interface com.epam.ta.reportportal.dao.ReportPortalRepository
exists, refresh
-
Methods inherited from interface com.epam.ta.reportportal.dao.UserRepositoryCustom
findByFilterExcluding, findUserDetails, findUsernamesWithProjectRolesByProjectId
-
-
-
-
Method Detail
-
findIdByLoginForUpdate
@Query(value="SELECT id FROM users WHERE users.login = :username FOR UPDATE", nativeQuery=true) java.util.Optional<java.lang.Long> findIdByLoginForUpdate(@Param("username") java.lang.String login)
-
findByEmail
java.util.Optional<User> findByEmail(java.lang.String email)
-
findByLogin
java.util.Optional<User> findByLogin(java.lang.String login)
- Parameters:
login- user login for search- Returns:
OptionalofUser
-
findAllByEmailIn
java.util.List<User> findAllByEmailIn(java.util.Collection<java.lang.String> mails)
-
findAllByLoginIn
java.util.List<User> findAllByLoginIn(java.util.Set<java.lang.String> loginSet)
-
findAllByUserTypeAndExpired
@Query("SELECT u FROM User u WHERE u.userType = :userType AND u.isExpired = :isExpired") org.springframework.data.domain.Page<User> findAllByUserTypeAndExpired(@Param("userType") UserType userType, @Param("isExpired") boolean isExpired, org.springframework.data.domain.Pageable pageable)
-
expireUsersLoggedOlderThan
@Modifying @Query(value="UPDATE users SET expired = TRUE WHERE CAST(metadata-> \'metadata\' ->> \'last_login\' AS DOUBLE PRECISION) < (extract(EPOCH FROM CAST (:lastLogin AS TIMESTAMP)) * 1000);", nativeQuery=true) void expireUsersLoggedOlderThan(@Param("lastLogin") java.time.LocalDateTime lastLogin)
-
updateLastLoginDate
@Modifying @Query(value="UPDATE users SET metadata = jsonb_set(metadata, \'{metadata,last_login}\', to_jsonb(extract(EPOCH FROM CAST (:lastLogin AS TIMESTAMP)) * 1000), TRUE ) WHERE login = :username", nativeQuery=true) void updateLastLoginDate(@Param("lastLogin") java.time.LocalDateTime lastLogin, @Param("username") java.lang.String username)Updates user's last login value- Parameters:
lastLogin- Last login dateusername- User
-
findNamesByProject
@Query(value="SELECT u.login FROM users u JOIN project_user pu ON u.id = pu.user_id WHERE pu.project_id = :projectId", nativeQuery=true) java.util.List<java.lang.String> findNamesByProject(@Param("projectId") java.lang.Long projectId)
-
findNamesByProject
@Query(value="SELECT u.login FROM users u JOIN project_user pu ON u.id = pu.user_id WHERE pu.project_id = :projectId AND u.login LIKE %:term%", nativeQuery=true) java.util.List<java.lang.String> findNamesByProject(@Param("projectId") java.lang.Long projectId, @Param("term") java.lang.String term)
-
findLoginById
@Query(value="SELECT users.login FROM users WHERE users.id = :id", nativeQuery=true) java.util.Optional<java.lang.String> findLoginById(@Param("id") java.lang.Long id)
-
-