gpt4 book ai didi

java - 如何在Java中创建一个简单的连接表?

转载 作者:行者123 更新时间:2023-12-02 10:05:35 25 4
gpt4 key购买 nike

我正在尝试用 Java 建立一个非常简单的数据库,其中包含两个表,并使用特定的连接表连接它们。

第一个表 Student 由 id、first_name 和 last_name 组成。

第二个表类(class)由 ID 和名称组成。

名为 Enrollment 的连接表应具有源自第一个和第二个表的 course_id 和 Student_id。

我的问题是我不知道在扩展Spring Data JPA的AbstractPersistable时如何映射ID,其中有一个自动递增的主键字段。

我的代码:

学生:

// Package
// Imports

@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Student extends AbstractPersistable<Long> {

private String first_name;
private String last_name;

}

类(class):

// Package
// Imports

@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Course extends AbstractPersistable<Long> {

private String name;

}

我尝试了 @ManyToMany 注释的不同用法,但由于主键 ID 由 AbstractPersistable 处理,因此我无法映射连接表的“不可见”ID。

我还知道连接表及其列可以用@Column、@JoinColumn和@JoinTable命名。我还没到那一步。

最佳答案

嗨,我会尝试这样的事情......

@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Student extends AbstractPersistable<Long> {

private String first_name;
private String last_name;

@ManyToMany(cascade = {
CascadeType.PERSIST,
CascadeType.MERGE
})
@JoinTable(name = "enrollment",
joinColumns = @JoinColumn(name = "student_id"),
inverseJoinColumns = @JoinColumn(name = "course_id")
)
private List<Course> courses;

}
@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Course extends AbstractPersistable<Long> {

private String name;

@ManyToMany(mappedBy = "courses")
private List<Student> students;

}

关于java - 如何在Java中创建一个简单的连接表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55358819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com