首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Java-EE中使用hibernate创建ManyToMany关系?

如何在Java-EE中使用hibernate创建ManyToMany关系?
EN

Stack Overflow用户
提问于 2018-12-23 20:23:33
回答 1查看 164关注 0票数 0

在构建带有依赖项的maven项目时,我一直收到以下错误:

代码语言:javascript
复制
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.

我有这两个实体,代码如下:配置:

代码语言:javascript
复制
@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;

模板(关系的所有者):

代码语言:javascript
复制
@ManyToMany
@JoinTable(name="TEMPLATE_CONFIGURATIONS",
joinColumns=
    @JoinColumn(name="ID", referencedColumnName="ID"),
inverseJoinColumns=
    @JoinColumn(name="ID", referencedColumnName="ID")
)
private List<Configuration> configurations;

我希望有一个多对多的关系,因为一个“模板”包含几个“配置”,而“配置”可以在几个“模板”(配置)中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-23 21:39:19

通常,当您在定义关系的Many端时没有定义Generics,就会出现您定义的异常,如解释的here

尽管在您的情况下,还有一些其他的问题。

由于您已经在ConfigurationTemplate之间应用了@ManyToMany关系,因此应该在Configuration Entity中这样定义。

代码语言:javascript
复制
@ManyToMany(mappedBy="configurations")
 private List<Template> templates;

如果你要求配置只能在模板上,而一个模板可以有多个配置,你应该使用OneToMany relationship。在配置实体中,您将拥有:

代码语言:javascript
复制
@ManyToOne(mappedBy="configurations")
private Template template;

在模板实体中,您将拥有

代码语言:javascript
复制
@OneToMany
private List<Configuration> configurations;

希望这能有所帮助!!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53903593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档