怎么写HQL查询数据也包含bridgetable列?
How to write HQL to query the data also include the bridge table column?
我有一个关于如何编写 HQL 查询数据并包含桥 table 列的问题?这是我的 ER 图:
在我的 TeamRepository 代码中:
package com.crmbackend.allService.teamService.repo;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import com.crmbackend.entity.Team;
public interface TeamRepository extends PagingAndSortingRepository<Team, Integer> {
@Query("select t from Team t")
public List<Team> getAllTeamandDetails();
}
结果如下:
如您所见,我获取了所有团队以及属于该团队的所有用户。
但是这里的问题是我无法从 team_users 实体中获取额外的列。
我应该如何编写此 HQL 代码以添加所有团队和用户信息以及来自桥 table 的数据?
这是我的问题,谢谢!
访问此列的唯一方法是将 collection/join table 映射为实体并映射该列。如果您使用的是 Hibernate 5.1+,您可以编写如下查询:
select t, tu
from Team t
left join TeamUser tu on tu.team.id = t.id
我有一个关于如何编写 HQL 查询数据并包含桥 table 列的问题?这是我的 ER 图:
在我的 TeamRepository 代码中:
package com.crmbackend.allService.teamService.repo;
import java.util.List;
import java.util.Optional;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import com.crmbackend.entity.Team;
public interface TeamRepository extends PagingAndSortingRepository<Team, Integer> {
@Query("select t from Team t")
public List<Team> getAllTeamandDetails();
}
结果如下:
如您所见,我获取了所有团队以及属于该团队的所有用户。 但是这里的问题是我无法从 team_users 实体中获取额外的列。 我应该如何编写此 HQL 代码以添加所有团队和用户信息以及来自桥 table 的数据?
这是我的问题,谢谢!
访问此列的唯一方法是将 collection/join table 映射为实体并映射该列。如果您使用的是 Hibernate 5.1+,您可以编写如下查询:
select t, tu
from Team t
left join TeamUser tu on tu.team.id = t.id