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 ..
Ich glaube, Sie eine Klasse namens benötigen 'User' eigen, die Hibernate beitreten können' WorkspaceUserImpl'. Die Implementierung von 'User' ist nicht ausreichend. –
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? –