2016-05-16 2 views
0

У меня есть таблицы ниже, но у вас есть проблемы при получении результатов.Запрос HQL для ассоциации

@Entity 
@Table(name = "USER_VW") 
public class WorkspaceUserImpl 
{ 
    @JoinColumn(name = "USER_ID", insertable=false, updatable=false) 
    @OneToOne(targetEntity = UserImpl.class, fetch = FetchType.EAGER) 
    private User user; 

} 

@Table(name = "IK_USER") 
@Inheritance(strategy = InheritanceType.JOINED) 
@AttributeOverride(name = "id", column = @Column(name = "USER_ID")) 


    public class UserImpl extends BaseAuditable<UserIdentifier>implements User, UserAuthentication { 

     private static Logger log = LoggerFactory.getLogger(UserImpl.class); 

     @Id 
     @Type(type = "com.commons.UserIdentifierTypeMapper") 
     @Column(name = "USER_ID") 
     private UserIdentifier id; 
    } 

пользователя и

Public Inteface User 
{ 
     UserIdentifier getId(); 
} 

Теперь я написал запрос HQL для извлечения всех данных из класса WorkspaceUserImpl с заданным идентификатором пользователя для класса UserImpl, как показано ниже.

SELECT w from WorkspaceUserImpl w where w.user.id = : user_id; 

, а также пытались

SELECT w from WorkspaceUserImpl as w INNER JOIN w.user as u where u.id = : user_id; 

и даже пытались с JOIN FETCH также

и установка параметра user_id с некоторыми сказать 1234.

, но я получаю список как emply для частичного идентификатора, но в БД имеет 5 записей.

Я делаю ошибку здесь здесь? любезно совет ..

+0

Я считаю, что вам нужен класс с именем 'User' собственно, к которому Hibernate может присоединиться к' WorkspaceUserImpl'. Реализация 'User' недостаточна. –

+0

Как его старый код, мне не разрешено вносить какие-либо изменения в hirarchy ... как abt my HQL ?? правильно ли, что я сделал? –

ответ

0

Вы пробовали ниже запроса:

from WorkspaceUserImpl as w JOIN FETCH w.user as u where u.id = : user_id; 
+0

Я еще не пробовал ... я сообщу вам результат .. Спасибо shankarsh .. –