我想从关联中生成一个字段。我遇到的问题是我正在使用:
[for (p: Property | aClass.getAssociations().ownedEnd -> select(p: Property | p.type <> aClass)) separator('\n')]
[p.visibility/] [p.type.name/] [p.type.name.toLowerFirst()/];
[/for]
[for (p: Property | aClass.getAssociations().ownedEnd -> select(p: Property | p.type = p.getOtherEnd().type)) separator('\n')]
[p.visibility/] [p.type.name/] [p.type.name.toLowerFirst()/];
[/for]
因此,它会检查所有关联,如果关联类型与 ass 类类型不同,它会创建该类型的字段。如果两端是相同类型,它会创建一个与包含它的类相同类型的字段。
所以基本上如果存在关联 A - B 和 A - A For B 创建 A,对于 A 创建 B 和 A。但是第二个循环存在问题。它创建了两个字段而不是一个字段,这是非常合乎逻辑的。问题来了。我该如何解决这个问题?我不确定我是否能够在这里声明某种变量并检查 %2。我不能只取一个值,因为可能有多个关联。也许我做错了所有事情?也许有一种方法可以遍历结束,这可以节省我所有的检查和两个 for 循环?