Tracks the Runway side of reverse / parent navigation. Parent feature:
cinchapi/concourse#781.
Summary
Let Runway find and criteria use reverse-navigation keys (^, ^key) so
application code can query records by their parents, for example
find(File.class, where("^.exchange.user.userId").EQUALS.value(me)).
Scope
- Pass
^-keyed criteria through to the server unchanged; the server resolves
them.
- Treat a
^-keyed condition as database-resolvable.
- Client-side parity: teach
Record.matches and navigate to evaluate reverse
hops so in-memory matching agrees with server find.
- Gate behind a
supportsReverseNavigation server-version check (mirroring
supportsTransitiveNavigation), falling back to the existing
find-then-collect idiom on older servers.
- Optional stretch: an
@Inverse(from, via) field annotation plus a
linkedFrom(...) accessor that resolve a declared back-reference (compiling
to the same primitive) for an ORM-ergonomic parent read site.
Acceptance Criteria
Tracks the Runway side of reverse / parent navigation. Parent feature:
cinchapi/concourse#781.
Summary
Let Runway
findand criteria use reverse-navigation keys (^,^key) soapplication code can query records by their parents, for example
find(File.class, where("^.exchange.user.userId").EQUALS.value(me)).Scope
^-keyed criteria through to the server unchanged; the server resolvesthem.
^-keyed condition as database-resolvable.Record.matchesandnavigateto evaluate reversehops so in-memory matching agrees with server
find.supportsReverseNavigationserver-version check (mirroringsupportsTransitiveNavigation), falling back to the existingfind-then-collect idiom on older servers.
@Inverse(from, via)field annotation plus alinkedFrom(...)accessor that resolve a declared back-reference (compilingto the same primitive) for an ORM-ergonomic parent read site.
Acceptance Criteria
findwith a^or^keycriterion returns the correct records viathe server.
matches()agrees withfind()for reverse criteria.reverse-navigation support.
^,^key, and a multi-hop reverse criterion (themy-files query) against Mockcourse and Runway.