【发布时间】:2016-02-08 04:45:22
【问题描述】:
我有一个类实体,其中包含其他类实体以获取连接结果。我应该按需从代理对象中删除不需要的连接吗?
@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 Jackson 库进行的,在某些情况下,我不想要这些交付的作业和已处理的作业,但由于 Jackson,它给出了完整的结果。
我应该如何按需获得结果?如果我在代理对象中将交付的作业设置为空怎么办?如果这是一种方法,它会是解决这个问题的好方法还是有其他解决方案?
【问题讨论】:
-
您不应该研究一下配置转换库以跳过不需要的字段/属性的方法吗?或者,您可以通过使用新的 Entity 类或构造函数查询来构建它,从而查询只有您感兴趣的数据的实体/对象。
标签: hibernate jpa proxy jackson lazy-loading