Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 是否有办法仅加载实体/实体的ID以避免组策略?_Jpa_Eclipselink - Fatal编程技术网

Jpa 是否有办法仅加载实体/实体的ID以避免组策略?

Jpa 是否有办法仅加载实体/实体的ID以避免组策略?,jpa,eclipselink,Jpa,Eclipselink,在某些情况下,仅需要加载实体的ID或实体集合的ID(例如,在关系中)。例如,我有一个en实体父对象和一组子对象 class Parent { private List<Child> children; } 类父{ 私人名单儿童; } 因此,当我想加载子对象时,我只希望在某些情况下加载ID,而不是加载子对象的整个状态。我做了一项研究,发现了一种通过命名的FetchGroup实现的方法,这意味着如果我想实现它,我必须为每个实体添加注释@FetchGroup(name=“i

在某些情况下,仅需要加载实体的ID或实体集合的ID(例如,在关系中)。例如,我有一个en实体父对象和一组子对象

class Parent { 
    private List<Child> children; 
}
类父{
私人名单儿童;
}
因此,当我想加载子对象时,我只希望在某些情况下加载ID,而不是加载子对象的整个状态。我做了一项研究,发现了一种通过命名的FetchGroup实现的方法,这意味着如果我想实现它,我必须为每个实体添加注释@FetchGroup(name=“id”,attributes={@FetchAttribute(name=“id”)}。当然,当我只想将其应用于一个实体时,它就适用于这种情况。对于子类案例,还应配置加载组


这里的问题是:当请求一个或多个实体时,是否有另一种策略专门用于仅加载ID?或者是一种表明这一点的方式?在这里,我希望避免使用@FetchGroup all entities进行注释,我想应用这些注释,仅用于加载ID。当然,创建类似“从父项中选择ID…”或“从父项内部选择child.ID连接父项中选择child.children WHERE…”的查询在这里也不是一个解决方案,因为始终应该定义,用于所有关系和实体。

如果只需要一个实体,可以在EntityManager上使用getReference()

如果是查询或关系,那么在EclipseLink中获取组是您唯一的选择