Dies ist, was ich in SQL Query-String erwartet:HQL - wie Daten abzufragen von einer Eins-zu-viele-Beziehung und den Zustand auf der zweiten Einheit Feld
SELECT dbo.FRIEND.FriendId, dbo.FRIEND.MemberId, dbo.FRIEND.FriendMemberId, dbo.FRIEND.DateAdded
FROM dbo.FRIEND INNER JOIN
dbo.MEMBER ON dbo.FRIEND.FriendMemberId = dbo.MEMBER.MemberId
WHERE (dbo.MEMBER.Activate = 1)
Dies ist meine Einheiten mit Beziehung: Entity Freund Feld
@Id
@Column(name = "[FriendId]")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long friendId;
@Column(name = "[MemberId]")
private Long memberId;
@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "[FriendMemberId]")
private Member friendMember;
@Column(name = "[DateAdded]")
private Date dateAdded;
Entity Mitglied Feld
@Id
@Column(name = "[MemberId]")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long memberId;
@Column(name = "[Activate]", columnDefinition = "boolean default true")
private boolean activate;
Hier ist meine HQL-Abfrage:
FROM Friend as f Left join f.Member as m WHERE f.MemberId = :memberId AND m.activate = true
aber ich habe Fehler. Also, wie sollte ich schreiben HQL-Abfrage erhalten Daten und ihre Bedingung hängt von member.activate?
Im Titel fragen Sie nach '@ OneToMany', aber im Inhalt gibt es nur' @ OneToOne'. –