先上代码 cuba.rar (2.0 MB)
环境:
CUBA Platform version: 7.2.1
CUBA Studio plugin version: 13.1-191
IntelliJ version: CUBA Studio 2019.2
问题描述:
1.项目A定义一个 可嵌入实体 (public class TestBaseEmbedd extends EmbeddableEntity )
2.项目A定义一个实体 使用@MetaClass注解(public class TestBase extends StandardEntity)
3.实体包含多个可嵌入实体 TestBaseEmbedd
@Embedded
@EmbeddedParameters(nullAllowed = false)
@AttributeOverrides({
@AttributeOverride(name = "code", column = @Column(name = "SEX_CODE")),
@AttributeOverride(name = "name", column = @Column(name = "SEX_NAME"))
})
protected TestBaseEmbedd sex;
@Embedded
@EmbeddedParameters(nullAllowed = false)
@AttributeOverrides({
@AttributeOverride(name = "code", column = @Column(name = "JOB_CODE")),
@AttributeOverride(name = "name", column = @Column(name = "JOB_NAME"))
})
protected TestBaseEmbedd job;
@Embedded
@EmbeddedParameters(nullAllowed = false)
@AttributeOverrides({
@AttributeOverride(name = "code", column = @Column(name = "LEVEL_CODE")),
@AttributeOverride(name = "name", column = @Column(name = "LEVEL_NAME"))
})
protected TestBaseEmbedd level;
4.项目A发布为应用程序组件
5.项目B引用项目A的组件
6.项目B创建数据库,正常生成数据库
7.项目B直接运行 (Debug 或 Run ),出现错误的数据库更新脚本提示,脚本会删除所有 TestBaseEmbedd 字段
8.将错误语句标记为手动执行后,项目可正常运行