Can';不能让单表继承在SpringRoo中工作。
我使用SpringRoo和Oracle来映射使用单表继承的继承层次结构。Roo数据库反向工程创建了这个类。我添加了@Discriminator。。。注释和继承类型Can';不能让单表继承在SpringRoo中工作。,spring,hibernate,spring-roo,Spring,Hibernate,Spring Roo,我使用SpringRoo和Oracle来映射使用单表继承的继承层次结构。Roo数据库反向工程创建了这个类。我添加了@Discriminator。。。注释和继承类型 @RooDbManaged(automaticallyDelete = true) @RooJpaActiveRecord(inheritanceType = "SINGLE_TABLE", table = "MEASUREMENT", schema = "SCREENING", sequenceName = "MEASUREMENT
@RooDbManaged(automaticallyDelete = true)
@RooJpaActiveRecord(inheritanceType = "SINGLE_TABLE", table = "MEASUREMENT", schema = "SCREENING", sequenceName = "MEASUREMENT_SEQ")
@DiscriminatorColumn(name = "DTYPE", discriminatorType = DiscriminatorType.STRING, length = 50)
@DiscriminatorValue("TEXT")
public class Measurement {
...
}
Roo使用
privileged aspect Measurement_Roo_DbManaged {
...
@Column(name = "DTYPE", length = 50)
@NotNull
private String Measurement.dtype;
...
}
和Measurement_Roo_Jpa_Entity.aj
declare @type: Measurement: @Inheritance(strategy = InheritanceType.SINGLE_TABLE);
(如果您对Roo不太熟悉,这些位在编译之前会被折叠到主类中。)
然后我创建了子类
@Entity
@DiscriminatorValue(value="NUMERIC")
public class MeasurementNumeric extends Measurement {
public MeasurementNumeric(Long value) {
setNumericValue(value);
}
}
现在,每当我启动应用程序时,它都会在上下文初始化时抛出一个BeanCreationException,这最终是由
org.hibernate.MappingException: Repeated column in mapping for entity: my.package.domain.MeasurementNumeric column: DTYPE (should be mapped with insert="false" update="false")
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:682)
我整天都在想这里发生了什么事,但我一事无成。我见过的唯一一次提到这个错误是有人同时在多个属性上声明@Column(name=“someName”)。但我不知道在这种情况下会发生什么
有人能告诉我发生了什么事以及如何修复它吗