Сопоставление объектов Spring Data JPA Hibernate для столбцов сгруппированной базы данных - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть связь с базой данных, которую я не могу понять, как моделировать. Вот пример взаимосвязи:

Первая таблица, называемая курсами:

ID   NAME
 1   MATH101
 2   MATH201
 3   ENGL201
 4   COMS400    

Вторая таблица, называемая course_grouping:

ID  COURSE_ID     GROUP_NAME
99          1     Math - Year 1
98          2     Math - Year 1

Не все курсы имеют группу в Таблица Course_grouping, только специальные.

Я пытаюсь смоделировать этот объект:

public class CourseGroup {
    private String groupName;
    private List<Course> courses;
}

, который для строк в таблицах выше будет выглядеть как

Course{groupName='Math - Year 1', courses={Course{id=1, name='MATH101'}, Course{id=2, name='MATH201'}}}

У меня будет сущность Course:

@Entity
@Table(name = "COURSE")
public class Course {
    @Id
    private Long id;
    @Column(name = "NAME")
    private String name;
}

, и тогда сущность для другой таблицы начинает меня смущать, потому что для каждого имени группы есть дублирующиеся строки.

@Entity
@Table(name = "COURSE_GROUPING")
public class CourseGrouping {
    @Id
    private Long id;
    @Column(name = "GROUP_NAME")
    private String groupName;

    // foreign key to course table
    // not sure what type of relationship if any
    private Long courseId;
}
...