无法在spring数据jpa

时间:2018-04-09 10:44:40

标签: java sql hibernate spring-data-jpa

您好我正在尝试获取父类部门,我也有一个员工条款。

在Employee表中,我有一个指标is_active。 我需要找一个有多个员工的部门,其中is_active不是N'

我尝试使用存储库。

@Query("select t1 from Department t1 inner join t1.employee t2 where t1.deptHead = :deptHead and t1.departmentId = :deptId and t2.isActive != 'N')
public Department fetchDepartmentByActiveEmployees(@Param(deptId) Long deptId, @Param(deptHead) String deptHead);

上面的查询给了我父数据,但是当试图遍历子实体时,它在Employee上给我LazyInitializationException,无法初始化代理 - 没有会话

我在我的OneToMany映射上将fetchType指定为lazy。

等效的sql查询如下所示。

select t1.*, t2.* from Department t1, Employee t2 where t2.dept_Id = 423 and t1.dept_name='HR' and t1.is_active != 'N'

1 个答案:

答案 0 :(得分:1)

您可以尝试获取联接以急切地获取子实体。 查询应该是下一个:

  @Query("select t1 from Department t1 inner join fetch t1.employee t2 where t1.deptHead = :deptHead and t1.departmentId = :deptId and t2.isActive != 'N')