首页 > 解决方案 > 如何在 Spring Boot 中对两个实体进行内部连接?

问题描述

我想从存储库中进行内部连接查询。原始查询如下所示:

select p.id_persona,p.nombre,p.appaterno,p.apmaterno, bp.fecha_ingreso,bp.fecha_salida 
from bitacora_personas as bp
inner join persona as p on p.id_persona=bp.fk_id_persona 
where p.fk_id_empresa= :idEmpresa

我在存储库中有这样的方法:

@Repository("bitacoraPersonasRepository")
public interface BitacoraPersonasRepository extends JpaRepository<BitacoraPersonas, Serializable> {
    @Query(value = "select p.id_persona,p.nombre,p.appaterno,p.apmaterno, bp.fecha_ingreso,bp.fecha_salida from bitacora_personas as bp\n" +
            "inner join persona as p on p.id_persona=bp.fk_id_persona\n" +
            "where p.fk_id_empresa= :idEmpresa",
            nativeQuery = true)
    public List<BitacoraPersonas> getPersonasPorEmpresa(@Param("idEmpresa") Integer idEmpresa);
}

当我尝试运行它时,它会抛出一个错误,指出id_bitacora_personas来自 BitacoraPersonas 实体的列不存在,即使表中的列存在。我认为这是因为 Persona 实体没有该列,并且当我尝试getPersonasPorEmpresa()从返回 List of 的控制器运行该方法时BitacoraPersonas,它不适用于Persona实体,因为它们没有正确映射或其他东西。如您所见,我正在尝试从Persona实体中检索属性,就像从BitacoraPersona内部连接中的实体一样。我该如何解决这个问题?

标签: javahibernatespring-bootspring-mvcinner-join

解决方案


推荐阅读