保存实体不会正确更新 class-hierarchy 标签
Saving Entity does not update class-hierachy labels correctly
我有一个抽象超类 Report 和两个子类 SimpleReport 和 ExtendedReport,我想将它们保留在我的数据库中。
如果创建了 SimpleReport,它会按预期附加标签 "Report" 和 "SimpleReport"。
用户可以修改这样的SimpleReport,从而导致SimpleReport 成为ExtendedReport。
如果我现在保存此 ExtendedReport(使用与 SimpleReport 相同的 ID,因为我只是想更新它)它附有标签 "Report"、"SimpleReport" 和 "ExtendedReport"
恕我直言,保存时应删除标签 "SimpleReport"。我目前在保存更新的报告后使用密码查询删除了错误的标签。
我想问一下是否有更好的方法来存档它,如果方法有误或者这是 ogm 中的错误?
标签规则如下:
- 层次结构中的任何普通混凝土class默认生成一个标签
- 普通摘要class默认不生成标签
- 普通界面默认不生成标签
- 任何用@NodeEntity 或@NodeEntity(label="something") 注释的class 生成一个标签
- 不得使用空标签或空标签
- classes / 不被持久化的层级必须用@Transient注解
因此,如果您从基础 class 中删除摘要,或添加 @NodeEntity
注释,您将看到预期的结果。
编辑:
重命名 class 时,OGM 不会删除标签。任何其他标签均保持原样。
- 您可以使用直接数据库访问手动删除这些。
- 您可以使用
@Labels
注释声明一个字段来管理来自实体的 adding/removing 附加标签。
我有一个抽象超类 Report 和两个子类 SimpleReport 和 ExtendedReport,我想将它们保留在我的数据库中。
如果创建了 SimpleReport,它会按预期附加标签 "Report" 和 "SimpleReport"。
用户可以修改这样的SimpleReport,从而导致SimpleReport 成为ExtendedReport。
如果我现在保存此 ExtendedReport(使用与 SimpleReport 相同的 ID,因为我只是想更新它)它附有标签 "Report"、"SimpleReport" 和 "ExtendedReport"
恕我直言,保存时应删除标签 "SimpleReport"。我目前在保存更新的报告后使用密码查询删除了错误的标签。
我想问一下是否有更好的方法来存档它,如果方法有误或者这是 ogm 中的错误?
标签规则如下:
- 层次结构中的任何普通混凝土class默认生成一个标签
- 普通摘要class默认不生成标签
- 普通界面默认不生成标签
- 任何用@NodeEntity 或@NodeEntity(label="something") 注释的class 生成一个标签
- 不得使用空标签或空标签
- classes / 不被持久化的层级必须用@Transient注解
因此,如果您从基础 class 中删除摘要,或添加 @NodeEntity
注释,您将看到预期的结果。
编辑:
重命名 class 时,OGM 不会删除标签。任何其他标签均保持原样。
- 您可以使用直接数据库访问手动删除这些。
- 您可以使用
@Labels
注释声明一个字段来管理来自实体的 adding/removing 附加标签。