Interface UsersRepository

All Superinterfaces:
org.springframework.data.repository.CrudRepository<Users,​java.lang.Integer>, org.springframework.data.jpa.repository.JpaRepository<Users,​java.lang.Integer>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<Users>, org.springframework.data.repository.PagingAndSortingRepository<Users,​java.lang.Integer>, org.springframework.data.repository.query.QueryByExampleExecutor<Users>, org.springframework.data.repository.Repository<Users,​java.lang.Integer>

public interface UsersRepository
extends org.springframework.data.jpa.repository.JpaRepository<Users,​java.lang.Integer>, org.springframework.data.jpa.repository.JpaSpecificationExecutor<Users>
User repository for making query to User table
Author:
Jakub Perdek
  • Method Summary

    Modifier and Type Method Description
    void changeEmail​(java.lang.String oldEmail, java.lang.String newEmail)
    Changes email of user
    void changeName​(java.lang.String oldName, java.lang.String newName)
    Changes name of user
    void changePassword​(java.lang.String password, java.lang.String email)
    Changes password of user
    java.util.List<Users> findAll()
    Gets all user
    Users[] findByEmail​(java.lang.String emailU)
    Selects users according email except admin - it is used for search
    Users[] findByName​(java.lang.String nameU)
    Selects users according name except admin - it is used for search
    Users getByEmail​(java.lang.String string)
    Selects only one user according email except admin, otherwise it fails
    Users getByName​(java.lang.String string)
    Selects only one user according name except admin, otherwise it fails
    void insertUser​(java.lang.String name, java.lang.String email, java.lang.String password)
    Inserts new user to databse
    void updateRole​(java.lang.Integer roleId, java.lang.Integer userId)
    Update associted priviledge of user
    void updateRoleAccordingName​(java.lang.Integer roleId, java.lang.String userName)
    Update priviledge - role according user name

    Methods inherited from interface org.springframework.data.repository.CrudRepository

    count, delete, deleteAll, deleteAll, deleteById, existsById, findById, save

    Methods inherited from interface org.springframework.data.jpa.repository.JpaRepository

    deleteAllInBatch, deleteInBatch, findAll, findAll, findAll, findAllById, flush, getOne, saveAll, saveAndFlush

    Methods inherited from interface org.springframework.data.jpa.repository.JpaSpecificationExecutor

    count, findAll, findAll, findAll, findOne

    Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository

    findAll

    Methods inherited from interface org.springframework.data.repository.query.QueryByExampleExecutor

    count, exists, findAll, findOne
  • Method Details

    • findByName

      @Query(value="SELECT * FROM users WHERE name LIKE (?1) AND name != \'admin\'", nativeQuery=true) Users[] findByName​(java.lang.String nameU)
      Selects users according name except admin - it is used for search
      Parameters:
      nameU - - name which identifies users
      Returns:
      array of users obtained according name
    • findByEmail

      @Query(value="SELECT * FROM users WHERE email LIKE :emailU AND email != \'admin@topsecret.com\'", nativeQuery=true) Users[] findByEmail​(@Param("emailU") java.lang.String emailU)
      Selects users according email except admin - it is used for search
      Parameters:
      emailU - - email which identifies users
      Returns:
      array of users obtained according email
    • getByName

      @Query(value="SELECT * FROM users WHERE name = ?1", nativeQuery=true) Users getByName​(java.lang.String string)
      Selects only one user according name except admin, otherwise it fails
      Parameters:
      string - - name which identifies user
      Returns:
      user obtained according name
    • getByEmail

      @Query(value="SELECT * FROM users WHERE email = ?1 AND email != \'admin@topsecret.com\'", nativeQuery=true) Users getByEmail​(java.lang.String string)
      Selects only one user according email except admin, otherwise it fails
      Parameters:
      string - email which identifies user
      Returns:
      user obtained according email
    • changeName

      @Query(value="UPDATE users SET name = ?2 WHERE name = ?1", nativeQuery=true) @Modifying @Transactional void changeName​(java.lang.String oldName, java.lang.String newName)
      Changes name of user
      Parameters:
      oldName - - old name of user which should be changed
      newName - - new name which should replace old
    • changeEmail

      @Query(value="UPDATE users SET email = ?2 WHERE email = ?1", nativeQuery=true) @Modifying @Transactional void changeEmail​(java.lang.String oldEmail, java.lang.String newEmail)
      Changes email of user
      Parameters:
      oldEmail - - old email of user which should be changed
      newEmail - - new email which should replace old
    • changePassword

      @Query(value="UPDATE users SET password = ?1 WHERE email = ?2", nativeQuery=true) @Modifying @Transactional void changePassword​(java.lang.String password, java.lang.String email)
      Changes password of user
      Parameters:
      password - - old hashed password of user which should be changed
      email - - new hashed password which should replace old
    • insertUser

      @Query(value="INSERT INTO users(name, email, password) VALUES (password = ?1, email = ?2, password = ?3)", nativeQuery=true) @Modifying @Transactional void insertUser​(java.lang.String name, java.lang.String email, java.lang.String password)
      Inserts new user to databse
      Parameters:
      name - - name of new user
      email - - email of new user
      password - - password of new user
    • updateRole

      @Query(value="UPDATE users SET priviledges_id = ?1 WHERE id = ?2", nativeQuery=true) @Modifying @Transactional void updateRole​(java.lang.Integer roleId, java.lang.Integer userId)
      Update associted priviledge of user
      Parameters:
      roleId - - new role id for user
      userId - - user identifier for who role should be changed
    • updateRoleAccordingName

      @Query(value="UPDATE users SET priviledges_id = ?1 WHERE name = ?2", nativeQuery=true) @Modifying @Transactional void updateRoleAccordingName​(java.lang.Integer roleId, java.lang.String userName)
      Update priviledge - role according user name
      Parameters:
      roleId - - role id of associated role
      userName - - user name which identifies user
    • findAll

      java.util.List<Users> findAll()
      Gets all user
      Specified by:
      findAll in interface org.springframework.data.repository.CrudRepository<Users,​java.lang.Integer>
      Specified by:
      findAll in interface org.springframework.data.jpa.repository.JpaRepository<Users,​java.lang.Integer>
      Returns:
      all users from database