我有结果JPA类包含下面的anotation。
@JoinColumn (name = "cod_id", insertable = false, updatable = false, referencedColumnName = "cod")
@ManyToOne(optional = true, fetch=FetchType.EAGER)
private TableView dep;
TableView是一个实体,其来自另一个数据库的视图。所以,据我所知,我无法直接访问该表。
确定。在介绍之后,这里是:
问题:当我获取结果时,TopLink JPA会逐个查询每个dep。它从Results中获取所有resultSet,然后逐个获取每个dep。
问题:有没有办法避免这种行为?以最小化数据库服务器工作量的方式?
答案 0 :(得分:0)
您可以在查询中使用连接提取,或在映射中使用@JoinFetch,或使用批量提取。
请参阅, http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html