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,>
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:
En esta consulta modificada, estamos proporcionando un alias a la columna
first_name
comofirstName
. Luego puedes usar este alias en tu código para recuperar el valor de la columna.Ten en cuenta que también hemos modificado el tipo de retorno del método
GetRepo()
aList<string>
, ya que ahora estamos seleccionando una sola columna en lugar de todas las columnas.</newuser,>