【发布时间】:2017-12-13 02:35:43
【问题描述】:
每家公司都有两个属性,它们是公司名称和预计年收入。 有两种类型的公司:1- 主要公司,2- 子公司。 公司可以只属于一个公司,但可以有几个子公司。
【问题讨论】:
标签: java hibernate jpa one-to-many one-to-one
每家公司都有两个属性,它们是公司名称和预计年收入。 有两种类型的公司:1- 主要公司,2- 子公司。 公司可以只属于一个公司,但可以有几个子公司。
【问题讨论】:
标签: java hibernate jpa one-to-many one-to-one
只是为了让您朝着正确的方向前进,您需要查看关联映射,Hibernate 提供了用于定义关联的字段/方法注释 - 在您的情况下需要特别注意;
@Entity
@OneToMany
@ManyToOne
我建议您花一些时间熟悉有关该主题的Hibernate Documentation;这是使用休眠的基础。谷歌上有关该主题的一些入门教程可以帮助您入门 - 那里有很多(here for example)。如果您在开始时遇到特定问题,我相信您可以获得更多帮助。
【讨论】:
使用@Entity,您可以将一个类定义为一个实体。使用@Column,您可以定义哪些属性映射到哪些表列。之后你需要定义你的关系,在这种情况下是对同一个表的自我引用(母公司到子公司),你可以这样定义它:
@ManyToOne
private Company parentCompany;
@OneToMany(mappedBy = "parentCompany", fetch = FetchType.EAGER)
private Set<Company> childCompanies;
【讨论】:
childCompanies。命名至关重要。为什么要使用 FetchType EAGER 而不是使用正常的默认值,尤其是对于像这样的递归关联。加载任何 cmpany 将强制加载整个公司树。