Мне нужно модели для двух сущностей в базе данных. Модель User
и Модель Role
. Эти две сущности имеют отношения многие ко многим. В файлах модели у меня есть класс User.java
:
@Entity
@Table(name = "User")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String username;
private String password;
private String name;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(
name = "role_user",
joinColumns = {@JoinColumn(name = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "role_id")})
private Set<Role> roles;
//getters and setters
}
, и у меня есть класс Role.java
:
@Entity
@Table(name = "Role")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private int id;
private String role;
@ManyToMany(mappedBy = "roles", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<User> users;
//getters and setters
}
У меня также есть репозитории / DAO для них:
public interface UserRepository extends JpaRepository<User, Integer>{}
и
public interface RoleRepository extends JpaRepository<Role, Integer> {}
Теперь, когда я получаю все результаты из класса Role
, он возвращает все столбцы из Entity User
, как я могу указать, что мне нужен только столбец name
с User
Сущность? Стоит ли строить другую модель только с нужными мне столбцами, или есть какой-то простой способ выбора указанных c столбцов?