Association它指明了两个View之间的关系,如果一个View A中定义了Association到另外一个View B时,View A可以把这个Association作为一种特殊类型的字段暴露在selection list里面,那么当上层的另一个View C使用到View A时,他可以通过View A中暴露的这个Association去取View B中的字段。 也就是说只有当View C会用到View B中的字段时,在Runtime的时候View A就会去做left outer join到View B,当上层的View没有用到View B中的字段时,View A就不会Join View B。这样就能提升了View的性能,因为如果直接使用left outer join,那么View A就肯定会join View B,不管上层会不会用到View B中的字段。Association在底层应该也是用left outer join实现的。