Насколько я понимаю, вам нужно @OneToMany
вместо @ElementCollection
, когда значение Map
является сущностью. Примерно так:
@OneToMany
@JoinTable(name = "ISSUE_EMPLOYEE",
joinColumn = @JoinColumn(name = "ISSUE_ID"),
inverseJoinColumn = @JoinColumn("EMPLOYEE_ID"))
@MapKeyColumn(name="EMPLOYEEPOSITION_ID")
private Map<EmployeePosition, Employee> namedEmployees = new Hashtable<EmployeePosition, Employee>();
РЕДАКТИРОВАТЬ: Отображение выше отлично работает в Hibernate, но не работает в EclipseLink. Столбец EMPLOYEEPOSITION_ID
в ISSUE_EMPLOYEE
создан, но не используется в запросах. Это происходит не только с ключами enum, но и с другими примитивными типами.
Похоже, ошибка в EclipseLink. Я не могу найти в их Bugzilla , поэтому, возможно, было бы лучше сообщить об этом.