예를 들어, 엔티티에 메타데이타 정보가 연결되어 있을 때 다음과 같이 사용합니다.
enterprise.Metadata["key"] = "value";
hbm에서는 map 이고, c#에서는 IDictionary 또는 IDictionary
이때 특정 메타데이타를 가진 모든 엔티티를 조회하기 기능이 필요할 때가 있습니다.
메타데이타 값을 얻는 것은 조인으로 해결하면 되므로 매우 쉽습니다.
from Enterprise ent join ent.MetadataTable meta where meta.Value = :value
를 사용합니다.
그럼 특정 메타데이타 키를 가진 엔티티를 구하는 방법은? .... 이거 해결하느라 하루가 걸렸네요...
index나 key 에 해당하는 예약어가 있는 줄 알았는데 복수로 indices 라고 있네요... 쩝...
from Enterprise ent where :key in indices(ent.MetataTable)
이라고 하면 됩니다.
특정 키와 값을 모두 찾고 싶다면
from Enterprise ent where :meta in elements(ent.MetaTable)
라고 하면 됩니다.
댓글 없음:
댓글 쓰기