我在一个公共项目中有一组实体,我想覆盖子项目中的一些值。它可以是不同的映射,额外的字段等......
当我添加一个扩展普通实体的实体时,它被创建为子类并需要discrimantor列。
在公地:
@Entity
class SomeTable {
private Long id;
}
在子项目中
@Entity
class SomeTable extends common.SomeTable {
private String extraField;
}
我基本上想要的是将子实体(SubEntity)映射为org.hibernate.mapping.RootClass。我使用org.springframework.orm.jpa.persistenceunit.PersistenceUnitPostProcessor从PersistenceUnitInfo中明确删除了常用的类,但它没有帮助。有没有办法禁止映射父类?
我正在使用spring-boot和Hibernate 5.0.11
更新:到目前为止,我想出了一个解决方案,将两个SomeTable实体映射到xml配置,并从PersistenceUnitInfo中删除它们。根据我的意见不是很好的方法,但它允许做我想做的事情:分别保留几个项目的所有常用代码,并能够覆盖子项目中的一些模型......
答案 0 :(得分:0)
在@javax.persistence.MappedSuperclass
课程中添加@javax.persistence.Entity
注释而不是SomeTable
。
这是您的SomeTable
类不会被映射或创建任何其他表。它只会向从其继承的其他实体添加额外的列。