ANSI 连接
本章描述了如何在实体之间使用 ANSI Join。从 5.5 版本开始,Couchbase 服务器支持使用字段连接文档的 ANSI Join。以前的版本允许索引和查找 Join,这在 SDC 中只能通过 SDK 直接查询来支持。
跨存储库的实体之间的关系可以是一对一或一对多。通过定义此类关系,可以获取关联实体的同步视图。
配置
通过使用 @N1qlJoin 注解实体的属性引用,可以获取关联实体。前缀 lks 指左侧键空间(当前实体),rks 指右侧键空间(关联实体)。@N1qlJoin 注解的必需元素是 on 子句,它是一个布尔表达式,表示左侧 (lks) 和右侧 (rks) 之间的连接条件,可以是字段、常量表达式或任何复杂的 N1QL 表达式。还可以在注解上为 Join 指定一个可选的 where 子句,同样使用 lks 指代当前实体,使用 rks 指代关联实体。
示例 1. ANSI Join 注解
@Document
public class Author {
@Id
String id;
String name;
@N1qlJoin(on = "lks.name=rks.authorName")
List<Book> books;
@N1qlJoin(on = "lks.name=rks.name")
Address address;
...
}