【发布时间】:2019-01-31 07:24:30
【问题描述】:
我正在使用 ISIS 1.16.2 开展一个项目。我有一个超类,称为ConfigurationItem,它有一些共同的属性(name、createdTimestamp 等)。
例如,它有一个删除操作方法,用@Action(invokeOn = InvokeOn.OBJECT_AND_COLLECTION, ...) 注释,我需要从实体详细视图以及带有选择框的集合视图中调用它。
示例:
public class ConfigurationItem {
@Action(
invokeOn = InvokeOn.OBJECT_AND_COLLECTION,
semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE,
domainEvent = DeletedDomainEvent.class)
public Object delete() {
repositoryService.remove(this);
return null;
}
// ...
}
public class ConfigurationItems {
@Action(semantics = SemanticsOf.SAFE)
public List<T> listAll() {
return repositoryService.allInstances(<item-subclass>.class);
}
// ...
}
这很好用,但现在不推荐使用“invokeOn”注释。 JavaDoc 说应该切换到@Action(associateWith="..."),但我不知道如何转移“InvokeOn”的语义,因为我没有可供参考的集合字段。
相反,我只有数据库检索操作返回的对象集合。
我的问题是:如何将已弃用的 @Action(invokeOn=...) 语义转换为新的 @Action(associateWith="...") 概念以获取没有支持属性字段的集合返回值?
提前致谢!
【问题讨论】: