How to get payload display as below? I wanted to join multiple roles access into one array(Native Query) as shown in the second example

Viewed 19

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);
}
0 Answers
Related