小编Ste*_*olf的帖子

jpa lazy使用条件api获取多个级别的实体

我正在使用JPA2和它的Criteria API来从数据库中选择我的实体.实现是WebSphere Application Server上的OpenJPA.我的所有实体都使用Fetchtype = Lazy建模.

我从数据库中选择一个具有某些条件的实体,并希望一次从子表中加载所有嵌套数据.如果我有一个数据模型,其中表A将oneToMany连接到表B,我可以在条件查询中使用Fetch子句:

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<A> cq = cb.createQuery(A.class);
Root<A> root = cq.from(A.class);
Fetch<A,B> fetch = root.fetch(A_.elementsOfB, JoinType.LEFT);
Run Code Online (Sandbox Code Playgroud)

这很好用.我得到一个元素A,它的所有元素都被正确填充.现在表B与表C具有oneToMany关系,我也想加载它们.所以我在我的查询中添加以下语句:

Fetch<B,C> fetch2 = fetch.fetch(B_.elementsOfC, JoinType.LEFT);
Run Code Online (Sandbox Code Playgroud)

但这不会做任何事情.

有人知道如何在一个查询中获取多级实体吗?

jpa openjpa fetch criteria-api jpa-2.0

8
推荐指数
1
解决办法
8372
查看次数

在WebSphere上使用slf4j进行OpenJPA日志记录

我的Java EE 6应用程序使用slf4j作为日志记录框架的logback.现在我想将OpenJpa的SQL跟踪添加到我的日志文件中.OpenJpa-Documentation说,我可以使用一个参数:

<property name="openjpa.Log" value="slf4j"/>
Run Code Online (Sandbox Code Playgroud)

我将WebSphere Application Server v8.0.0.1用作Java EE容器.如果我将我的应用程序部署到服务器,则此参数不会更改任何内容.我可以在WebSphere Admin Console中更改日志级别,这样可以正常工作.但是一个无法绕过OpenJpa日志记录到我的slf4j框架.

有没有人使用这样的配置并解决了这个问题?

顺便说一句.我知道,信息中心 - 文章http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.doc%2Finfo%2Fae%2Fae%2Ftejb_jpatroubleshoot .html 说,该参数将被忽略,但一切都应该可以,呃?

websphere openjpa slf4j

5
推荐指数
1
解决办法
2482
查看次数

标签 统计

openjpa ×2

criteria-api ×1

fetch ×1

jpa ×1

jpa-2.0 ×1

slf4j ×1

websphere ×1