我正在使用 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="...")
没有支持属性字段的集合返回值的新概念?
提前致谢!