我遇到了一个表的问题,因为一个表有一个多对多的关系,因为一个需求可以有多个父母和多个孩子。我基本上使用 NetBeans 向导从数据库创建实体,其他一切似乎都正常。但是为这种父/子关系进行单元测试我开始失败了。基本上,当我以某种方式将孩子添加到要求时,孩子最终也会将父母也作为孩子。
我相信在某种程度上与 JoinTable 有 2 列指向同一个键。
这是映射此的相关实体代码:
@JoinTable(name = "requirement_has_requirement", joinColumns = {
@JoinColumn(name = "requirement_id", referencedColumnName = "id"),
@JoinColumn(name = "requirement_version", referencedColumnName = "version")}, inverseJoinColumns = {
@JoinColumn(name = "parent_requirement_id", referencedColumnName = "id"),
@JoinColumn(name = "parent_requirement_version", referencedColumnName = "version")})
@ManyToMany
private List<Requirement> requirementList;
@ManyToMany(mappedBy = "requirementList")
private List<Requirement> requirementList1;
如果需要,可以在这里获取代码:https://javydreamercsw@bitbucket.org/javydreamercsw/validation-manager
编辑 这些问题很难回答,因为实际上它不起作用。理论上requireList 应该有child 和requirementList1 的父关系。
当我尝试添加一个孩子时,我会执行以下操作:
requirement.getRequirementList().add(requirement2);
<Persist requirement here>
假设这两个要求是适当的有效实体。