Как сделать отношения ManyToMany с Hibernate в Java-EE?
Я продолжаю получать эту ошибку при сборке моего проекта 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 ответ
Как правило, определенное вами исключение возникает, когда вы не определяете Generics
при определении Many
сторона отношений, как описано здесь
Хотя в вашем случае есть и другая проблема.
Поскольку вы подали заявку @ManyToMany
отношения между Configuration
а также Template
, это должно быть определено как это в объекте конфигурации.
@ManyToMany(mappedBy="configurations")
private List<Template> templates;
Если у вас есть требование, что Конфигурация может иметь только шаблон, а шаблон может иметь несколько Конфигураций, вы должны выполнить OneToMany
отношения. В конфигурации объекта вы будете иметь:
@ManyToOne(mappedBy="configurations")
private Template template;
И в шаблоне Entity у вас будет
@OneToMany
private List<Configuration> configurations;
Надеюсь это поможет!!