У меня проблемы с доступом к данным экземпляра сущности JPA в моем контроллере Spring Boot.
Это сущности:
Пользователь:
@Entity
@Data
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(unique=true, length=50)
private String username;
@OneToMany(cascade = CascadeType.ALL)
private List<Authority> authorities = new ArrayList<>();
}
Авторитет:
@Entity
@Data
public class Authority {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@NotNull
private String authority;
}
UserRepository:
public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findByUsername(String username);
}
Это метод контроллера:
@RestController
public class InfoController {
@RequestMapping(value="/userinfo", method= RequestMethod.GET)
public Optional<User> getUser() {
Optional<User> foundUser = repository.findByUsername("testuser");
return foundUser;
}
}
Когда я получаю доступ к / userinfo в своем браузере, я получаю это:
{
"id": 1,
"username": "testuser",
"password": "",
"enabled": true,
"authorities": [
{
"id": 1,
"authority": "ADMIN"
}
]
}
Итак, пока все хорошо, но я хочу перебрать свойство полномочия объекта User в контроллере, но я не могу получить к нему доступ (или любой другой). другое имущество). Я пытался использовать такие методы, как:
foundUser.getAuthorities();
foundUser.authorities;
foundUser.get('authorities');
.... Но ни один из этих методов не существует. Как мне это сделать?