gpt4 book ai didi

java - Hibernate:多对多加入继承策略的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:29:50 25 4
gpt4 key购买 nike

我遇到的问题更多的是方法问题而不是如何使用,请让我解释一下:

两个类(class),学生和家庭作业。学生类(class)有一份他们的许多家庭作业的 list 。家庭作业类有一份 list ,其中列出了许多要完成的学生。

一些示例代码以防万一有人搜索快速的多对多示例:

@Entity(name="STUDENT")
@Inheritance(strategy=InheritanceType.JOINED)//Note this join type, no redundancy
public class Student {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

@ManyToMany(mappedBy="studentList")//Note how this is mapped
private Collection<Homework> homeworkList = new ArrayList<Homework>();

@Entity(name="HOMEWORK")
@Inheritance(strategy=InheritanceType.JOINED)
public class Homework {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

@ManyToMany
private Collection<Student> studentList = new ArrayList<Student>();

Hibernate 会做它的事情并创建一个表,student_homework 使用主键将每个家庭作业映射到学生,反之亦然。

例如,我怎么可能使用 Hibernate 来保存“homeworkCompleted” boolean 值。这个值不能存在于student类,作业多,homework类也一样,学生多。

一个可能的解决方案是可能手动进入数据库,创建另一个列,每次保存条目时都可以选择更新已完成的或稍后再做。

我忍不住认为有一个非常非常简单的解决方案,hibernate 可以处理并使一切正常,还有一些应用逻辑。

非常感谢,院长

最佳答案

你现在需要两个多对一,你的 student_homework 变成类似 Assignment[completed] 的东西。

更多相关信息: Mapping many-to-many association table with extra column(s)

关于java - Hibernate:多对多加入继承策略的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775000/

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