【发布时间】:2015-11-18 07:35:55
【问题描述】:
我想创建两个具有@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 类的最后一个引用。我可以通过在 ClassB 中添加 @OneToOne public ClassA lastClassA; 来做到这一点(就像 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。发生这种情况是因为我在另一个表中没有引用。
【问题讨论】:
-
也许使用索引集合映射会更好?这里有一些例子docs.jboss.org/hibernate/orm/4.3/manual/en-US/html_single/…
标签: java hibernate jpa spring-boot