【发布时间】:2017-10-14 17:53:10
【问题描述】:
我有一个班级Portfolio,其中保存了债务人在不同银行的债务。因此,投资组合具有Debt 对象的列表,注释为@OneToMany。
这是Portfolio:
@Entity
public class Portfolio extends PersistentEntity {
@OneToMany
private List<Debt> debts;
/* Getters and setters */
}
还有班级Debt:
@Entity
public class Debt extends PersistentEntity {
@OneToOne
private Portfolio portfolio;
/* Getters and setters */
}
我的问题是在 Debt 类中使用什么注释。我知道它是@OneToOne,因为债务属于特定的投资组合,但有人建议我使用@ManyToOne。我从这个注释中了解到,债务可以被不同的投资组合引用。这是正确的吗?
【问题讨论】:
-
一对多关系的另一端是多对一。 “一个”投资组合有“许多”债务。从单笔债务的角度看,是一债一债,但实际上,债务类别中的关系代表了整体的关系。
-
许多
Debts 属于一个单一的“投资组合”,所以@ManyToOne 在Debt。这是关于实体之间的整体关系,而不是关于Debt的特定实例。 -
完美!但是如果我使用
@OneToOne,会不会出现错误(除了概念上的误解)?我问你是因为我用@OneToOne使用它,但它没有抛出任何错误,所以可能是没有出现错误,或者我忘记实现某些东西而这些错误对我来说没有出现。 -
一些 JPA 关系的好读物:stackoverflow.com/questions/3113885/…