Как сделать отношения ManyToMany с Hibernate в Java-EE? - PullRequest
0 голосов
/ 23 декабря 2018

Я продолжаю получать эту ошибку при построении моего проекта 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.

У меня есть эти 2 сущности со следующим кодом: Конфигурация:

@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 Ответ

0 голосов
/ 23 декабря 2018

Как правило, определенное вами исключение возникает, когда вы не определяете Generics при определении Many стороны отношений, как объяснено здесь

Хотя в вашем случае есть некоторые другиепроблема.

Поскольку вы применили отношение @ManyToMany между Configuration и Template, это должно быть определено следующим образом в объекте конфигурации.

@ManyToMany(mappedBy="configurations")
 private List<Template> templates;

В случае, если у вас есть требованиеэта Конфигурация может иметь только шаблон, в то время как шаблон может иметь несколько Конфигураций, вы должны установить отношение OneToMany.В Entity Configuration у вас будет:

@ManyToOne(mappedBy="configurations")
private Template template;

А в Entity у вас будет

@OneToMany
private List<Configuration> configurations;

Надеюсь, что это поможет !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...