我是使用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在数据层中创建一种数据库视图对象吗? 什么是最佳实践,我该怎么做?