我想创建两个具有@OneToMany
和@ManyToOne
关系的类。以下是示例代码。
@Entity
public class ClassA {
@Id
public Long id;
@ManyToOne
public ClassB classB;
public String something;
}
@Entity
public class ClassB {
@Id
public Long id;
@OneToMany(mappedby = "classB")
public List<ClassA> classAList = new ArrayList<>();
public String somet;
}
该代码工作得很好但是,我希望在B类中有A类的最后一个引用。我可以通过在@OneToOne public ClassA lastClassA;
中添加ClassB
来实现这一点(就像here) 。以下是代码:
@Entity
public class ClassA {
@Id
public Long id;
@ManyToOne
public ClassB classB;
public String something;
}
@Entity
public class ClassB {
@Id
public Long id;
@OneToMany(mappedby = "classB")
public List<ClassA> classAList = new ArrayList<>();
@OneToOne
public ClassA lastClassA;
public String somet;
}
该代码正在运行。当我向其中任何一个插入数据时出现问题,我收到以下错误:foreign key constraint fails
。之所以发生这种情况,是因为我在另一张表中没有引用。
答案 0 :(得分:0)
目前尚不清楚您想要做什么,但是如果您想要引用该集合中的最终项目,则可以使用一些选项。
https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html
&#34;特懒惰&#34;集合提取:个人元素 根据需要从数据库访问集合。 Hibernate尝试 除非绝对,否则不要将整个集合提取到内存中 需要。它适用于大型系列。
https://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/