【发布时间】:2019-05-23 00:52:12
【问题描述】:
在使用依赖项构建我的 maven 项目时,我不断收到此错误:
Exception Description: The target entity of the relationship attribute
[template] on the class [class pt.ipleiria.dae.entities.Configuration]
cannot be determined. When not using generics, ensure the target entity is
defined on the relationship mapping.
我有这两个实体,代码如下: 配置:
@ManyToMany(mappedBy="configurations")
private Template template;
private String name;
private ConfigurationState state;
private String version;
private String description;
private List<Module> modules;
private List<Resource> resources;
private List<String> parameters;
private List<String> extensions;
private String contrato;
模板(关系的所有者):
@ManyToMany
@JoinTable(name="TEMPLATE_CONFIGURATIONS",
joinColumns=
@JoinColumn(name="ID", referencedColumnName="ID"),
inverseJoinColumns=
@JoinColumn(name="ID", referencedColumnName="ID")
)
private List<Configuration> configurations;
我希望建立多对多关系,因为“模板”包含多个“配置”,而“配置”可以位于多个“模板”(配置)中。
【问题讨论】:
-
1) 能否请您显示模板和配置的整个 java 代码。 2)@JoinTable 映射错误,不能有两列同名
-
@SimonMartinelli 我有一个 BaseEntity,它是一个 MappedSuperClass,它的 id 字段带有“@GeneratedValue”标签。其余代码是带有 getter 和 setter 的构造函数。
-
@RicardoFerreira:在配置实体中,它应该是一个列表——像这样
List<Template> templates。 -
@RicardoFerreira:由于模板和配置之间存在多对多关系,这意味着模板可以有多个配置,一个配置可以有多个模板。如果一个配置只能有一个模板,则需要在
TemplateEntity 中指定OneToMany关系,在Configuration实体中指定ManyToOne关系。 -
@RicardoFerreira:这解决了你的问题吗?
标签: hibernate maven jpa jakarta-ee glassfish-5