Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

272
Visualizações
Parametrización de adaptadores de canal de entrada JPA

Actualmente estoy desarrollando una aplicación basada en el marco Spring Boot que emplea un adaptador de canal de entrada JPA para recuperar datos de una base de datos relacional. Tengo un procedimiento almacenado llamado GetEmployee que debe aceptar un valor que varía según la instancia del servidor en la que se ejecuta la aplicación.

Revisé la documentación de Spring sobre adaptadores y menciona una etiqueta llamada int-jpa:parameter, pero parece que solo se utiliza cuando se utiliza el atributo de consulta con nombre en lugar del atributo de consulta nativa.

También hay un atributo de fuente de parámetro en la etiqueta int-jpa:inbound-channel-adapter , pero no he encontrado ninguna buena documentación sobre cómo utilizarlo.

¿Hay alguna forma de pasar un parámetro de un bean Spring a la consulta nativa? ¿O es el mejor enfoque usar el atributo de consulta con nombre?

XML de configuración:

 <int-jpa:inbound-channel-adapter id="employeeAdapter" channel="employeeChannel" entity-manager-factory="entityManagerFactory" entity-class="com.example.entities.Employee" native-query="EXEC emp.dbo.GetEmployee" expect-single-result="false" delete-after-poll="false"> <int:poller fixed-rate="10000"> <int:transactional propagation="REQUIRED" isolation="DEFAULT" transaction-manager="transactionManager" /> </int:poller> </int-jpa:inbound-channel-adapter>
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Bueno, eso realmente funciona solo si su consulta declara algunos parámetros:

 /** * Given a JPQL query, this method gets all parameters defined in this query and * use the {@link ParameterSource} to find their values and set them. * */ private void setParametersIfRequired(String queryString, ParameterSource source, Query query) { Set<Parameter<?>> parameters = query.getParameters();

Dado que su EXEC no tiene ningún parámetro en la llamada al procedimiento, no hay nada que extraer y aplicar para los int-jpa:parameter s proporcionados.

Considere usar CALL emp.dbo.GetEmployee(?) o BEGIN emp.dbo.GetEmployee(?); END; . No estoy seguro de qué sintaxis funcionará para su RDBMS.

Por otro lado, echaría un vistazo a la compatibilidad con Spring Integration Stored Procedure .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda