LowCode (Mendix) Advanced/Advanced Domain Model Skills

Advanced Associations Using Self Reference

Caryou 2024. 9. 6. 14:14

학습 목표

이 모듈을 마치면 다음을 수행 할 수 있습니다.

  • 자체 참조 구현
  • 자기 참조를 정상적으로 그리고 역으로 쿼리합니다.
  • 소유권의 영향 설명
  • 자체 참조에 대한 명명 규칙 적용

다음과 같이 하나의 플레이어(부모)가 여러 플레이어(자식)와 연결될 수 있도록 만들고자 합니다.

[그림 1]

[그림 2] 와 같은 설정으로 구현이 가능합니다.

자체 참조를 추가할 때 연결을 Player_Player라고 하므로 식별가능한 연결의 이름으로 바꾸는게 좋습니다. 

역서는 'Apprentice_Buddy'라고 명명 했습니다.

[그림 2]

자식은 연결의 소유자입니다 - 즉, 연결은 항상 자식을 통해 업데이트됩니다.

아무 플레이어든 다른 플레이어의 부모가 될 수 있기 때문에 무제한 레벨의 친구가 있는 구조를 구축할 수 있습니다.

 

 

쿼리

dataview안에 listview가 감싸져있는 형태.    dataview는 한명의 player의 데이터를 가지고 있음.          listview에서 dataview에 연결된 플레이어 목록을 가져오고자 할 떄 다음과 같이 XPath를 작성하면 된다. 

[SoccerSquad.Apprentice_Buddy = '[%CurrentObject%]']

[그림 3]

[그림 3]과 같이 Thimo와 연결되어있는 모든 player들이 리턴된다.

 

 

역방향 쿼리

[SoccerSquad.Apprentice_Buddy [reversed ()] = '[%CurrentObject%]']

[reversed ()] 표현식은 자체 참조에만 적용 할 수 있습니다.

연결을 오른쪽에서 왼쪽으로 읽는 대신 왼쪽에서 오른쪽으로 읽습니다. 

[그림 4]

 

출처 : Mendix Academy - Advanced Domain Model Skills