The following example shows how a relational annotation can be created and
used. The Orderid annotation indicates there is a relation between
OrderEvent and OrderLineEvent. if they have the same ID,
the order line belongs to the order.
@MetadataDefinition @Relational @Name("com.example.OrderId") @Label("Order ID") @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface OrderId { } @Name("com.example.Order") @Label("Order") @Category("Orders") class OrderEvent extends Event { @Label("Order ID") @OrderId long orderId; @Label("Order Date") @Timestamp long orderDate; } @Name("com.example.OrderLine") @Label("Order Line") @Category("Orders") class OrderLineEvent extends Event { @Label("Order ID") @OrderId long orderId; @Label("Quantity") long quantity; @Label("Product") String product; }