Hibernate不会通过hibernate.hbm2ddl.auto创建@embeddable类的列

时间:2014-07-08 12:28:59

标签: java hibernate jpa

正如您在本主题{$ 3}}中所看到的,我为每种单元类型都有可嵌入的类。  我有一个具有以下定义的实体A

@Entity
@Table(name = "class_x")
@PrimaryKeyJoinColumn(name = "class_x_id")
public class ClassX  {
/**
 * 
 */
private static final long serialVersionUID = -4924441463209260247L;

public ClassX  () {
    super();
}

@Column
private String name;


/** rated Apparent Power. */
@Embedded
@AttributeOverrides({
        @AttributeOverride(name = "value", column = @Column(name = "aColumn_value")),
        @AttributeOverride(name = "unit", column = @Column(name = "aColumn_unit")),
        @AttributeOverride(name = "multiplier", column = @Column(name = "aColumn_multiplier"))
})
private Temperature aColumn;
/** Reference short circuit voltage. */
@AttributeOverrides({
        @AttributeOverride(name = "value", column = @Column(name = "bColumn_value")),
        @AttributeOverride(name = "unit", column = @Column(name = "bColumn_unit")),
        @AttributeOverride(name = "multiplier", column = @Column(name = "bColumn_multiplier"))
})

private Percentage bColumn;

}

我将hibernate配置为使用create-drop从我的实体创建表。 class_x 表已创建,它只有 class_x_id 名称列。不会创建可嵌入对象的列。我找不到任何问题/解决方案。

1 个答案:

答案 0 :(得分:0)

问题在于我的可嵌入类定义。我使用的是继承的可嵌入对象。这在JPA中不起作用。现在,我已将基本抽象单元定义为MappedSuperClass。超级课程是可嵌入的。因此,可嵌入对象继承自@mappedsuperclass。其实我读到Jpa也没有支持这个。但它现在有效。