我有以下架构和三个简单的表:
STUDENTS: id, name, lastname
HOBBY: id, hobby_name
HOBBY_STUDENT: id_hobby, id_student
我有一台运行Hibernate和Spring的服务器。
一个JSP页面在STUDENT上执行CRUD操作,在HOBBY上执行另一个操作。
这很简单,我只需要一个与此类似的实体:
@Entity
@Table(name="STUDENT")
public class Student {
@Id
@Column(name="ID")
@GeneratedValue
private Integer id;
@Column(name="NAME")
private String name;
@Column(name="LASTNAME")
private String lastName;
// Getters and setters here
}
现在我需要创建一个页面来管理HOBBY_STUDENT。问题是我不应该在JSP页面中显示ID,而是显示相应的值(即与学生和学生信息相关的爱好)。
为了做到这一点,我应该如何编写我的实体和我的DAO?你有什么建议吗?
答案 0 :(得分:0)
正如Santosh Pingale所说:学生班应保持一系列爱好。
所以你的实体学生应该像这样:
@Entity
@Table(name="STUDENT")
public class Student {
@OneToMany
@JoinTable(name="student_hobbies", joinColumns=@JoinColumn(name="student_id"),
inverseJoinColumns=@JoinColumn(name="hobby_id"))
private Collection<Hooby> hobbies;
@Id
@Column(name="ID")
@GeneratedValue
private Integer id;
@Column(name="NAME")
private String name;
@Column(name="LASTNAME")
private String lastName;
// Getters and setters here
}