Hibernate:在只有ID的表的情况下DAO和实体

时间:2013-07-08 07:45:19

标签: java spring hibernate entity dao

我有以下架构和三个简单的表:

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?你有什么建议吗?

1 个答案:

答案 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
  }