Avn*_*evy 8 java web-services jpa eclipselink
我有几种情况,服务器使用JPA从数据库查询对象,然后通过Web服务将对象发送到客户端.
由于客户端在这种情况下需要完整的图形,我希望用急切的加载来覆盖延迟加载的集合,并且可能要求批量加载(用于性能).JPA(或EclipseLink)中是否有一种方法以通用方式覆盖查询(不重写查询)并请求完整图形?
10.1.3.获取联接
JPQL查询可以指定一个或多个连接提取声明,这允许查询指定预取的返回实例中的哪些字段.
SELECT x FROM Magazine x join fetch x.articles WHERE x.title = 'JDJ'
Run Code Online (Sandbox Code Playgroud)
上面的查询返回Magazine实例,并保证在返回的实例中已经提取了articles字段.
可以在单独的连接提取声明中指定多个字段:
SELECT x FROM Magazine x join fetch x.articles join fetch x.authors WHERE x.title = 'JDJ'
Run Code Online (Sandbox Code Playgroud)
资料来源:http://docs.oracle.com/cd/E13189_01/kodo/docs40/full/html/ejb3_overview_query.html#ejb3_overview_join_fetch
如果您使用 eclipselink,则可以使用内置查询提示。这样你就不必重写你的jpql,但你可以在java中定义获取类型。
http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Query_Hints#Join_Fetch
| 归档时间: |
|
| 查看次数: |
8392 次 |
| 最近记录: |