【问题标题】:How to have a course, student, progress relation in spring boot with JPA & Hibernate?如何在 Spring Boot 中与 JPA 和 Hibernate 建立课程、学生、进度关系?
【发布时间】:2019-08-03 17:58:46
【问题描述】:

我正在尝试在 Spring Boot 中实现 Student、Course 和 Progress 关系。我在课程中有一组学生注册了该课程。我想跟踪每个学生的进度。我的实体是。

课程

@Entity
@Table(name = "Course")
public class Course {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id")
private int courseId;

@Column(name = "name")
private String courseName;

@ManyToMany(fetch = FetchType.LAZY,
            cascade = {
                CascadeType.PERSIST,
                CascadeType.MERGE
            })
    @JoinTable(name = "UserCourse",
            joinColumns = { @JoinColumn(name = "user") },
            inverseJoinColumns = { @JoinColumn(name = "course") })
private Set<UserInfo> users = new HashSet<>();
}

用户信息

@Entity
@Table(name = "UserInfo")
public class UserInfo {

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id")
private Integer userId;

@Column(name = "fname")
private String firstName;

@Column(name = "lname")
private String lastName;

@Column(name = "email")
private String userEmail;
}

我如何跟踪每个选择该课程的用户的进度。它应该是一个浮点值。

【问题讨论】:

    标签: hibernate jpa spring-data-jpa


    【解决方案1】:

    通过将进度列映射到实体,将进度列添加到 UserCourse 表中。参见方法:

    https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-02
      • 2021-06-15
      • 2018-03-17
      • 1970-01-01
      • 2018-09-24
      • 2017-01-09
      • 2020-06-24
      相关资源
      最近更新 更多