Java 在与JPA的多对多关系中选择特定列

Java 在与JPA的多对多关系中选择特定列,java,hibernate,spring-boot,jpa,spring-data-jpa,Java,Hibernate,Spring Boot,Jpa,Spring Data Jpa,我必须为数据库中的两个实体创建模型。型号用户和型号角色。这两个实体具有多对多关系。在模型文件中,我有classUser.java: @Entity @Table(name = "User") public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String username; private String

我必须为数据库中的两个实体创建模型。型号
用户
和型号
角色
。这两个实体具有多对多关系。在模型文件中,我有class
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
}
@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 UserRepository扩展了JpaRepository{}

公共接口角色库扩展了JpaRepository{}

现在,当我从类
角色
中获取所有结果时,它返回实体
用户
中的所有列,我如何指定我只需要
用户
实体中的列
名称
?我是否应该只使用我需要的列构建另一个模型,或者有任何简单的方法来选择特定的列?

如果您以JSON格式返回它们,您可以在列上方添加一个@JsonIgnore。@mkane,@JsonIgnore没有这个问题,我的问题是我可以看到User类中的所有列(id、用户名、密码和名称)在我的例子中,我只想看到列
name
,而不是所有列哦,好吧,这就是为什么我想在id、用户名和密码中添加@JsonIgnore.@mkane,好的,可以了!有没有办法我可以把它作为参数传递,有时候我需要其他列。我不认为你可以把它作为参数传递,但你可以看看在@JsonSerialize注释中,并向其传递一个自定义序列化程序,在该自定义序列化程序类中,您可以添加关于何时忽略和何时不忽略的逻辑。。。
public interface RoleRepository extends JpaRepository<Role, Integer> {}