Jpa对象在引用上具有null值

时间:2013-06-26 01:27:57

标签: java hibernate jpa jpa-2.0

我有一个Hibernate Query返回的对象,一个对象应该有一个替换列表。 所以,我有一个“订单”对象应该有一个“替换”设置,问题是,当我查找该列表时,这是我得到com.sun.jdi.InvocationException occurred invoking method.然后,当代码继续运行,我尝试访问该集合,这就是我得到的failed to lazily initialize a collection of role: uo.ri.model.Order.ReplacementList, no session or session was closed

我真的不知道为什么我会遇到这个错误,我会在这里粘贴我的Order和我的Replacement课程,希望你能解决它

@Entity
@Table(name = "TOrder")
public class Order implements Serializable {
@Id
    @GeneratedValue
    long id;
    @Temporal(TemporalType.DATE)
    private Date creation_date;
    @Temporal(TemporalType.DATE)
    private Date reception_date;
    @Enumerated(EnumType.STRING)
    private PedidoStatus status;
    private float price;
    @OneToMany(mappedBy = "order")
    private Set<PedidoRepuesto> replacementList= new HashSet<PedidoRepuesto>();
    @ManyToOne
    private Proveedor provider;
}


@Entity
@Table(name = "TReplacement")
public class Repuesto implements Serializable {
@Id
    @GeneratedValue
    long id;
    private String name;
    private double price;
    private int having;
    private int likeToHave;
    private int minimumToHave;
    private int totalHaving;
    private float totalPrice;
    @OneToMany(mappedBy = "replacement")
    private Set<OrderReplacement> orderReplacements= new HashSet<OrderReplacement>();

    @OneToMany(mappedBy = "replacement")
    private Set<Sustitucion> sustituciones = new HashSet<Sustitucion>();

    @OneToMany(mappedBy = "replacement")
    private Set<ProviderReplacement> providerReplacement= new HashSet<ProviderReplacement>();
}

两个clases都有getter / setter和构造函数。

如果你需要我在这里粘贴更多的clases或者什么,请问问。 非常感谢你。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,这很简单,就是我关闭了会话,然后我想访问图中的“未映射”部分,因此,对象是Detached =&gt;您只能访问图中存储器中的那些部分。

解决方案是在会话仍为oppenes时访问该集合,只需调用方法collection.size()

然后您可以从任何地方访问该集合。希望这有帮助!