我有一个实体“MasterSegment”,其组合键作为主键。该键引用了另一个实体“BkrApplication”。当我在没有 Liquibase 的情况下启动应用程序时,表格会完美生成,并且一切正常。
public class MasterSegment extends Auditable {
@EmbeddedId
private MasterSegmentId id;
@OneToOne
@MapsId("appId")
private BkrApplication app;
// getters setters omitted
}
@Embeddable
public class MasterSegmentId implements Serializable {
@Column
private String name;
@Column(name = "app_id", nullable = false)
private Long appId;
// getters setters omitted
}
问题是当我尝试使用
mvn clean install liquibase:diff
生成 Liquibase 迁移时,出现以下错误:无法调用“org.hibernate.mapping.PersistentClass.getTable()”,因为“classMapping”为 null。
异常消息中没有任何提示,经过几个小时的调试,我注意到 @MapsId 导致了问题。我尝试删除它,但遇到了映射问题。
任何帮助将不胜感激。
谢谢
您的 BkrApplication 很可能不是 @Entity 注解的类,并且 Hibernate 元数据收集器正在努力解决它。
也很高兴看到您的 Auditable 课程。有时父母会带来不同。
最后,如果能看到调用的堆栈跟踪就好了。