es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener solo los datos de una columna de muchas cuando se utiliza JpaRepository y Hibernate?

He realizado la siguiente implementación mediante la extensión de JpaRepository:

import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.erecruitment.app.model.NewUser;
import com.erecruitment.app.model.user;

@Repository
public interface InterviewerDetail extends JpaRepository<newuser, integer="">{

    public String nativeQuery="SELECT first_name FROM new_user WHERE role in ('technical Interviewer','Hr Interviewer');";

    @Transactional
    @Modifying
    @Query(value=nativeQuery,nativeQuery=true)                           
    public List<newuser> GetRepo(int id);     
}

En la consulta nativa anterior, solo quiero obtener los valores de la columna “first_name” de todos los demás valores de columna. Sin embargo, cuando intento hacerlo, me aparece la siguiente excepción: java.sql.SQLException: Columna ‘users id’ no encontrada. Soy consciente de que esto se debe a la selección de solo una columna y no todas las columnas. Pero necesito obtener solo un valor de columna. ¿Cómo puedo resolver este problema?</newuser,>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, puedes modificar tu consulta nativa especificando un alias para la columna que deseas seleccionar. Por ejemplo, puedes modificar tu consulta de la siguiente manera:

    SELECT first_name AS firstName FROM new_user WHERE role in ('technical Interviewer','Hr Interviewer');
    

    En esta consulta modificada, estamos proporcionando un alias a la columna first_name como firstName. Luego puedes usar este alias en tu código para recuperar el valor de la columna.

    @Repository
    public interface InterviewerDetail extends JpaRepository<newuser, integer="">{
        public String nativeQuery="SELECT first_name AS firstName FROM new_user WHERE role in ('technical Interviewer','Hr Interviewer')";
    
        @Transactional
        @Modifying
        @Query(value=nativeQuery,nativeQuery=true)                           
        public List<string> GetRepo(int id);      
    }
    

    Ten en cuenta que también hemos modificado el tipo de retorno del método GetRepo() a List<string>, ya que ahora estamos seleccionando una sola columna en lugar de todas las columnas.</newuser,>

Comments are closed.