首页 > 解决方案 > 如何在 OCL 中进行分组?

问题描述

我在PersonDepartment之间有关联,我想检查 Person.function 是否是唯一的

Person.allInstances->isUnique(function)

但我想检查功能是否对于同一部门的人员是唯一的,而不是在所有人之间。我可以有同样的职能,但不能在同一个部门。我不知道如何为每个部门使用 isUnique (Persons group by department)。

标签: ocl

解决方案


如果您有要应用 isUnique 的范围,则将该范围收集为源。可能是 department.persons->isUn​​ique(function)。(这正是您应该应用的方法,以避免尽可能使用通常过于强大和低效的 allInstances() 。)


推荐阅读