Выбор определенных c столбцов во многих-многих отношениях с JPA - PullRequest
0 голосов
/ 20 января 2020

Мне нужно модели для двух сущностей в базе данных. Модель 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 столбцов?

...