2016-05-16 8 views
0

Ich habe unter Tabellen hier, aber einige Probleme beim Abrufen von Ergebnissen.HQL Abfrage für Assoziation

@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; 
    } 

und Benutzer

Public Inteface User 
{ 
     UserIdentifier getId(); 
} 

Jetzt habe ich eine HQL-Abfrage geschrieben, um die Daten alle von WorkspaceUserImpl Klasse zu holen mit einer bestimmten Benutzer-ID für UserImpl Klasse wie unten.

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

und versuchte auch

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

und sogar versucht, mit JOIN FETCH auch

und Einstellen der Parameter User_id mit einigen sagen 1234.

aber bin immer Liste als emply für die partikuläre ID, aber in DB hat es 5 Datensätze.

mache ich irgendeinen Suchfehler hier? freundlicherweise Beratung ..

+0

Ich glaube, Sie eine Klasse namens benötigen 'User' eigen, die Hibernate beitreten können' WorkspaceUserImpl'. Die Implementierung von 'User' ist nicht ausreichend. –

+0

Da es sich um einen alten Code handelt, darf ich keine Änderungen in der Hierarchie vornehmen ... wie geht es meinem HQL? ist es richtig, was ich getan habe? –

Antwort

0

Haben Sie versucht unter query:

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

Ich habe es noch nicht versucht .... ich werde Sie wissen lassen, das Ergebnis .. Danke shankarsh .. –