我很难让 eclipselink.join-fetch 提示在 glassfish 中工作。
我有一个包含 Task 对象集合的 Client 对象,并且 Task 对象具有 WorkPeriod 对象的集合。
我的代码如下所示:
Query query = entityManager.createQuery("select client from Client client left join fetch client.tasks");
//Set hint to allow nested fetch joins
query.setHint("eclipselink.join-fetch","client.tasks.workPeriods");
List<Client> clients = query.getResultList();
但无论我将 TOPLINK 调试级别设置为精细时做什么,它总是显示实际运行的 SQL 是:
SELECT t0.ID, t0.NAME, t1.ID, t1.DESCRIPTION FROM CLIENT t0 LEFT OUTER JOIN (CLIENT_TASK t2 JOIN TASK t1 ON (t1.ID = t2.tasks_ID)) ON (t2.Client_ID = t0.ID)
显然没有做第三层的join fetch。
有没有其他人有这个问题......或者只是我:-(
任何帮助或提示(没有双关语)将不胜感激。