在Spring / Hibernate项目

时间:2017-07-17 20:29:15

标签: spring hibernate many-to-many relationship

我是使用Spring框架和Hibernate进行开发的新手。我需要知道从多个表中检索数据的最佳做法是什么。这是一个简单的场景:

假设与这些表有多对多的关系:学生(sid,姓名),课程(cid,职称),学生课程(sid,cid)

我没有学生课程的模型/实体课程。以下是我在“学生”模型/实体类中处理关系的方法:

@JsonIgnore
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
    name = "students-courses",
    joinColumns = {@JoinColumn(name = "sid", referencedColumnName = "sid")},
    inverseJoinColumns = {@JoinColumn(name = "cid", referencedColumnName = "cid")})

因此,该课程通过Hibernate在数据库中创建“学生”和“学生课程”表。我还为Course提供了一个单独的Model / Entity类。

我如何获得所有学生的名单,包括他们的课程(头衔)?我指的是有多个课程的学生的多个记录

我可以在“Student”类中创建一个属性,如下所示:

private Set<Course> courses = new HashSet<>();

但如果我使用像

这样的JpaRepository接口/类,它将不会返回
return studentRepository.findAll();

因为它不是@Column。

我应该在课堂上编写本机SQL代码吗? 我应该创建一个Immutable Entity类,以便Hibernate在数据层中创建一种数据库视图对象吗? 什么是最佳实践,我该怎么做?

0 个答案:

没有答案