我有这两个实体 的许可证
@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时,它没有被覆盖,所以似乎hibernate对这个属性没有任何作用。 从另一边(从Permit)它工作正常。当我做的时候
entityManager.createQuery("SELECT p FROM Permit p")
我看到获取用户的所有许可。 我的映射有什么问题?