我有一个类实体,它包含其他类实体以获得连接结果。我应该根据需要从代理对象中删除不需要的连接吗?
@Entity
@Table(name = "JOBS")
public class job implements Serializable{
@Column(name = "id", nullable = true)
private int id ;
private String deliveryConfigXML;
private String djobConfigXML;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "date")
private Date Date;
@OneToMany(mappedBy = "processedjob")
private List<Processedjob> processedjobs;
@OneToMany(mappedBy = "deliveredjob")
private List<Deliveredjob> deliveredjobs;
}
当我从数据库中获取此实体时,它将提供代理对象。然后,通过使用该代理对象,我可以通过延迟加载获得其他实体。
List<DeliveredJob> list = jobs.getDeliveredJobs(); //lazy loading
由于整个回复是通过Java杰克逊库,在某些情况下,我不希望这些已经交付的工作和处理工作,但由于杰克逊,它给出了完整的结果。
我应该如何按需获得结果?如果我在代理对象中将传递的作业设置为null,该怎么办?如果这是一种方式,它是解决这个问题的好方法还是有其他解决方案?
答案 0 :(得分:0)
您可以尝试取消对象的修改。
if (entity instanceof HibernateProxy) {
entity = ((HibernateProxy) entity).getHibernateLazyInitializer()
.getImplementation();
}