【发布时间】:2015-05-26 22:02:59
【问题描述】:
我有两个实体类“Teacher & Class”,它们之间存在@OneToMany 关系。第一个在/teachers/{id} 有一个休息接口,第二个在/classes/{id} 有一个休息接口。当用户向Teacher 接口发送GET 请求时,他应该收到所有Teacher 和Class 字段。但是,当用户向Class 接口发送GET 请求时,我希望他接收所有Class 字段,并且只接收Teacher 字段的一部分“firstName, lastName”
以下是实体代码:
@Entity
@DiscriminatorValue("Th")
public class Teacher{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
private String phone;
@Column(unique = true)
@Email
private String email;
private String password;
@OneToMany(mappedBy = "teacher", fetch = FetchType.EAGER)
private List<Class> classes;
@OneToMany(mappedBy = "teacher", fetch = FetchType.EAGER)
private List<Note> notes;
protected Teacher() {
}
}
@Entity
public class Class {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
@OneToOne()
@JoinColumn(name = "subject_id")
private Subject subject;
@Enumerated(EnumType.STRING)
private Grade grade;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "teacher_id")
private Teacher teacher;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "class_student", joinColumns = { @JoinColumn(name = "class_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "student_id", referencedColumnName = "id") })
private List<Student> students;
protected Class() {
}
}
//getters and setters
【问题讨论】:
-
那么,您的问题到底是什么?
-
如果您使用的是 Hibernate 标准,请使用 Projections 仅获取所需的列..
标签: java json spring hibernate jpa