Comments (9)
I'm working on it. I hope to provide one by Monday
from spring-data-jpa.
Thank you @thjanssen! You don't happen to have a test at hand that reproduces the problem?
from spring-data-jpa.
@christophstrobl I added a test case here: https://github.com/thjanssen/spring-data-jpa/blob/issue/3460/spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java
It fails when I run it within my IDE, but the Maven build still passes. Any idea why?
BTW: The other test cases in that class were deactivated, but they seem to work fine. I've reactivated them on my branch.
from spring-data-jpa.
Suggested fix:
Add position information to ProcedureParameter
class, set it in StoredProcedureAttributeSource.extractOutputParametersFrom(...)
, and use that position in StoredProcedureJpaQuery.extractOutputParameterValue
to get the result value.
This should work based on the assumption that NamedStoredProcedureQuery.parameters()
returns the parameters in the correct order. As far as I understand the rest of the code, it already makes this assumption when using positional parameters.
I did a quick prototype implementation of this fix. You can find it here: 5e19dba
The final version would need some cleanup, and the output format feels a little strange. But it seems to fix the issue without breaking anything else.
from spring-data-jpa.
thank you @thjanssen!
from spring-data-jpa.
Hey @christophstrobl
If you think my suggested fix is the right way to go, I would love to clean it up and provide a pull request.
Any suggestions on how to improve the result presentation?
Using the position as the map key looks a little strange in the test case, but I didn't come up with a better idea.
BTW: This change also fixes an issue in the current implementation that all positional output parameters use the same map key and override each other.
from spring-data-jpa.
not right off the top of my head. let me have a look at it (may take a bit of time).
from spring-data-jpa.
I think the Map
is fine in the test. care to open a PR, we can take it from there :)
from spring-data-jpa.
@christophstrobl Awesome. I've send a PR
from spring-data-jpa.
Related Issues (20)
- Cannot deal TupleBackedMap type HOT 2
- Dto projection does not work as expected with Kotlin data classes HOT 2
- Switch to Broadcom docker proxy
- weird vscode HQL syntax error in Spring Boot HOT 1
- Investigate 'slim' Specification API
- Possible memory leak and failure to restore the observation scope when using a JPA repository from a GraphQL controller HOT 3
- Implement nested Hibernate filters for entities HOT 2
- JpaRepository.getReferenceById not working in Kotlin project
- InvalidApiUsageException: Unable to locate persister HOT 1
- POST_UPDATE not raised in OneToMany join HOT 3
- Jakarta Persistence Query Timeout does not work for Spring Data JPA findBy and findAll methods on MySQL and Oracle DBs HOT 8
- JpaSpecificationExecutor.findBy inserts wrong limit/offset into SQL Query HOT 9
- JpaRepository generated query differs HOT 2
- CASCADING DELETE not working as expected in derived query HOT 1
- Π‘an no longer use `distinct` and `cast(... as ...)` together HOT 1
- Interface-based projection does not work for queries with declared fields when returned interface is implemented by the entity HOT 2
- Release 3.2.9 (2023.1.9)
- Release 3.3.3 (2024.0.3)
- pageable sort ignoreCase and derived query feature ignoreCase are not in sync
- `<id-class>` tag in `orm.xml` not working HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-data-jpa.