Могу ли я сделать это в JPA / Hibernate / Spring? - PullRequest
0 голосов
/ 02 марта 2011

У меня есть простая иерархия объектов, которая начинается с объекта QuizResponse.

Первые два из них важны:

UserPersonalityQuizResponse
   extends PersonalityQuizResponse extends QuizResponse 
UserScoredQuizResponse
   extends ScoredQuizResponse extends QuizResponse 
...
AnonymousPersonalityQuizResponse
   extends PersonalityQuizResponse extends QuizResponse
AnonymousScoredQuizResponse
   extends ScoredQuizResponse extends QuizResponse 

Эти два, UserPersonalityQuizResponse и UserScoredQuizResponse, имеют свойство "user", сопоставленное для каждого столбца.

Можно ли сделать что-то в JPA / Hibernate, например, интерфейс, UserResponse, чтобы позволить мне реализовать это и затем сделать это?

List<UserResponse> quizResponses = user.getUserQuizResponses()

Сейчас мне нужно сделать два запроса, чтобы получить это (для получения userPersonalityQuizResponses и один для UserScoredQuizResponses).

К сожалению, иерархия класса QuizResponse не позволяет UserPersonalityQuizResponse и UserScoredQuizResponse расширять один и тот же родительский класс.

1 Ответ

0 голосов
/ 02 марта 2011

Вы можете выполнить HQL-запрос, например from QuizResponse q where q.class = UserScoredQuizResponse or q.class = UserPersonalityQuizResponse

Подробнее о полиморфных запросах см. Здесь: http://docs.jboss.org/hibernate/core/3.5/reference/en/html_single/#queryhql-polymorphism

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...