Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

268
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!