私はこれらの2つのエンティティを 許可しています
@Entity
@Table(name = "PERMITS")
public class Permit extends AbstractEntity<Long> {
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="USR_ID")
private User user;
ユーザー
@Entity
@Table(name = "USERS")
public class User extends AbstractEntity<Long> {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
@OrderBy("role ASC")
private List<Permit> permits;
public List<Permit> getPermits() {
return permits;
}
public void setPermits(List<Permit> permits) {
this.permits = permits;
}
// getters, setters etc ...
それらをロードすると
entityManager.createQuery("SELECT u FROM User u JOIN FETCH u.permits")
または、他のメソッド permit 属性を使用すると、常に null になります。それが PersistentBag であるかどうかは理解できますが、null であり、新しい ArrayList をそれに割り当てるとオーバーライドされないため、休止状態はこの属性で何もしないようです。反対側から (許可証から) 正常に動作します。私がする時
entityManager.createQuery("SELECT p FROM Permit p")
フェッチされたユーザーのすべての許可が表示されます。マッピングの何が問題になっていますか?