Здравствуйте, я боролся с моей ошибкой, так как я новичок в данных Spring, у меня есть модели с именем user и role, и я хочу запросить пользователя с ролью, но роль не может запросить у jpa здесьМой пример кода
Модуль пользователя:
@Entity
public class User {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
@Column(unique = true, nullable = false)
private String username;
private String password;
private String firstName;
private String lastName;
private String middleName;
@ManyToOne
@JsonBackReference
private Role role;
private Boolean isDisable;
//getter and setters here
}
Модуль роли:
@Entity
public class Role {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String roleName;
@ElementCollection(fetch = FetchType.EAGER)
private List<String> privileges;
@OneToMany(mappedBy="role")
@JsonManagedReference
private List<User> users;
//getter and setter
}
Репозиторий ролей:
@Repository
public interface UserRepository extends JpaRepository<User,Long>{
User findByUsername(String username);
List<User> findAll();
}
Реализация службы пользователя:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private final UserRepository userRepository;
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public User findByUsername(String username) {
return userRepository.findByUsername(username);
}
@Override
public List<User> findAll() {
return userRepository.findAll();
}
@Override
public User findById(Long id) {
return userRepository.findById(id).get();
}
@Override
public User save(User user) {
return userRepository.save(user);
}
}
Служба поддержки:
@Repository
public interface UserService {
User findByUsername(String string);
List<User> findAll();
User findById(Long id);
User save(User user);
}
Ответ:
{
"id": 4,
"username": "user",
"password": "$2a$10$ZQMkXzXAXyFvvrZ38UnWkuLpe34pM9c2Qnir/4dtZFyxsANYRkMYy",
"firstName": "user-firstname",
"lastName": "user-lastname",
"middleName": "user-middlename",
"disable": false
}
Спасибо за помощь