【发布时间】:2011-12-26 21:15:19
【问题描述】:
我正在映射一个过滤器--- 但是当我使用 drop-create 指令启动应用程序时,会创建以下 3 个表:
过滤器PK(名称)
FilterColumn PK(filter_name, name)
Filter_FilterColumn PK(filter_filter_name, filterColumn_filter_name, filterColumn_name) 我真正想要的只是两张表,例如:
过滤器PK(名称)
Filter_Column PK(name, filter_name) 为什么我会收到这个结果?我的映射有问题吗?我应该改变什么? 提前致谢。@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
}
}
【问题讨论】: