package Ġcom . eg m . st elli o . entity . repository Ċ Ċ import Ġcom . eg m . st elli o . entity . model . Entity Ċ import Ġorg . springframework . data . neo 4 j . annotation . Query Ċ import Ġorg . springframework . data . neo 4 j . repository . Neo 4 j Repository Ċ import Ġorg . springframework . stereotype . Repository Ċ import Ġjava . net . URI Ċ Ċ @ Repository Ċ interface ĠEntity Repository Ġ: ĠNeo 4 j Repository < Entity , ĠURI > Ġ{ ĊĊĠĠĠ Ġ@ Query ( ĊĠĠĠĠĠĠĠ Ġ" MATCH Ġ( entity : Entity Ġ{ Ġid : Ġ\$ id Ġ}) Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" RETURN Ġentity Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" LIMIT Ġ 1 " ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġget Entity Core ById ( id : ĠString ): ĠEntity ? ĊĊĠĠĠ Ġ@ Query ( ĊĠĠĠĠĠĠĠ Ġ" MATCH Ġ( entity : Entity Ġ{ Ġid : Ġ\$ id Ġ}) - [: HAS _ VALUE ]-> ( property : Property )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" OPTIONAL ĠMATCH Ġ( property )- [: HAS _ VALUE ]-> ( prop Value : Property )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" OPTIONAL ĠMATCH Ġ( property )- [: HAS _ OBJECT ]-> ( rel Of Prop : Relationship )- [ rel ]-> ( rel Of Prop Object )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" RETURN Ġproperty , Ġprop Value , Ġtype ( rel ) Ġas Ġrel Type , Ġrel Of Prop , Ġrel Of Prop Object . id Ġas Ġrel Of Prop ObjectId " ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġget Entity Specific Properties ( id : ĠString ): ĠList < Map < String , ĠAny >> ĊĊĠĠĠ Ġ@ Query ( ĊĠĠĠĠĠĠĠ Ġ" MATCH Ġ( entity : Entity Ġ{ Ġid : Ġ\$ id Ġ}) - [: HAS _ OBJECT ]-> ( rel : Relationship )- [ r ]-> ( rel Object )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" OPTIONAL ĠMATCH Ġ( rel )- [: HAS _ VALUE ]-> ( prop Value : Property )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" OPTIONAL ĠMATCH Ġ( rel )- [: HAS _ OBJECT ]-> ( rel Of Rel : Relationship )- [ or ]-> ( rel Of Rel Object )" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" RETURN Ġrel , Ġprop Value , Ġtype ( r ) Ġas Ġrel Type , Ġrel Object . id Ġas Ġrel ObjectId , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġrel Of Rel , Ġtype ( or ) Ġas Ġrel Of Rel Type , Ġrel Of Rel Object . id Ġas Ġrel Of Rel ObjectId " ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġget Entity Relationships ( id : ĠString ): ĠList < Map < String , ĠAny >> Ċ } Ċ