I a intern student,I tried join table use native query (user, role ,access)it success but when I use get mapping to display role_name and access by email, the payload display not like I want.
Payload when I get by email,I don't display like this. Example 1
Payload I want to get. I want to be display like this. Example 2
Here is my code:
UserRepository.java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query(value = "SELECT users.name, users.email, role.role_name, access.acc_name FROM users LEFT JOIN user_role ON user_role.user_id = users.id LEFT JOIN role ON role.rid = user_role.role_id LEFT JOIN role_access ON role_access.role_id = role.rid LEFT JOIN access ON role_access.access_id = access.id WHERE users.email= :email", nativeQuery = true)
List<Map<String, Object>> findUserByRoleIdByAccessById(@Param("email") String email);
}
--
UserController.java
@GetMapping("/users/access/{email}")
public List<Map<String, Object>> getuserAccess(@PathVariable(value = "email") String email) {
return userRepository.findUserByRoleIdByAccessById(email);
}