0

我有包含以下注释的结果 JPA 类。

@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。

问题:有没有办法避免这种行为?以最小化数据库服务器工作量的方式?

4

1 回答 1

0

您可以在查询中使用连接提取,或者在映射中使用 @JoinFetch,或者使用批量提取。

见, http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html

于 2012-09-24T14:05:00.303 回答