Я сопоставляю Filter ---
@Entity
public class Filter implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private String name;
private String caption;
@OneToMany(cascade = CascadeType.MERGE, targetEntity = FilterColumn.class)
private Set<FilterColumn> columns;
// setters and getters
}
@Entity
public class FilterColumn implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private FilterColumnId id;
private String caption;
// getters and setters
@Embeddable
public static class FilterColumnId implements Serializable {
private static final long serialVersionUID = 1L;
@ManyToOne
private Filter filter;
@Column
private String name;
// getters and setters
}
}
Но когда я запускаю приложение с инструкцией drop-create, создаются следующие 3 таблицы:
Фильтр ПК (имя)
FilterColumn PK (имя_фильтра, имя)
Filter_FilterColumn PK (filter_filter_name, filterColumn_filter_name, filterColumn_name)
Что я действительно хочу, так это две таблицы, например:
Фильтр ПК (имя)
Filter_Column PK (имя, имя_фильтра)
Почему я получаю этот результат? Что-то не так с моим отображением? Что я должен изменить?
Заранее спасибо.