У меня есть три сущности в моей музыкальной БД: Видео , Альбом и Жанр . И видео, и альбомы могут иметь несколько жанров, поэтому я пытаюсь связать их с ассоциацией многие ко многим .
Что у меня в БД:
Videos:
Id (int)
... (many other columns)
Albums:
Id (int)
... (many other columns)
Genre:
Id (int)
Name (string)
Item_Genres: (table we are mapping many-to-many with)
Id (int)
objectType (here I have "album" for albums and "video" for videos)
objectId (id from either Albums or Videos table)
genreId (Id of the appropriate genre)
Я могу сопоставить Жанр с Видео и Альбомы , используя многие-к-любому, но мне нужно получить все жанры для конкретного видео.
Как я могу это сделать?
На данный момент у меня есть это в Видео Отображение:
<set name="Genres" table="item_genres" lazy="true">
<key>
<column name="objectId" not-null="true"/>
</key>
<many-to-many class="Repositories.Entities.Genre">
<column name="genreId" not-null="true"/>
</many-to-many>
</set>
и при запросе video.Genres У меня есть жанры для этого видео и для альбома с одинаковым идентификатором.