JPA @OneToMany集合为null

时间:2013-11-04 06:40:15

标签: hibernate jpa

我有这两个实体 的许可证

@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")

我看到获取用户的所有许可。 我的映射有什么问题?

0 个答案:

没有答案