|
NHibernate и запрос по свойству подкласса
|
|||
---|---|---|---|
#18+
Пусть у нас есть 3 класса: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Напишем запрос: Код: plaintext 1. 2. 3. 4.
Все замечательно работает.... Пока у всех FastCarOwner'ов машины класса RacingCar... А вот как бы добавить проверку типа Car в запросе (или лучше приведение типа)? То что свойство Car в классе Owner имеет тип Car, а не RacingCar - это ошибка проектирования с точки зрения персистентных POCO-классов или вполне допустимый вариант? Вот еще нашел более расширенный вариант описываемой мною проблемы. тут И решение, которое предлагают там, более понятное. Но не ясно все таки стоит ли усложнять код в данном случае? Всем спасибо за внимание! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2011, 19:31 |
|
NHibernate и запрос по свойству подкласса
|
|||
---|---|---|---|
#18+
Criteria строится по вашему маппингу (по какой-то структуре в БД), задайте себе вопрос, "какой надо сгенерировать sql query ?" и дальше создавайте критерию с нужными алиасами чтоб получить этот запрос. например если у вас такая же стурктура таблиц как и классы: Car:Id<-RacingCar:Id(FK_Car) Car:Id<-FamilyCar:Id(FK_Car) Owner:CarId то вам просто надо джоин (алиас) делать по интересующей вам таблице RacingCar и у вас навернека будут только владельцы с этим типом машин ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2011, 11:29 |
|
NHibernate и запрос по свойству подкласса
|
|||
---|---|---|---|
#18+
stimpi, спасибо за ответ, но я не до конца понял. :) Вы пишете: авторвам просто надо джоин (алиас) делать по интересующей вам таблице RacingCar и у вас навернека будут только владельцы с этим типом машин Однако такой алиас я написать не могу, так как у свойства Car в классе Owner стоит тип Car, а не RacingCar. Или могу? Каким образом можно в CreateAlias указать интересующую таблицу?? Так не заработает: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2011, 13:51 |
|
NHibernate и запрос по свойству подкласса
|
|||
---|---|---|---|
#18+
вот так, но в маппинге RacingCar это subclass от Car Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2011, 16:17 |
|
|
start [/forum/search_topic.php?author=ex_ggv&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
10ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
138ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
others: | 795ms |
total: | 1050ms |
0 / 0 |