-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JpaSort.unsafe throws exception for non-entity properties [DATAJPA-1643] #1946
Comments
Hello, Did you find a workaround for this ? Im also stick with this:
Thanks, |
We ended up doing something similar to this: public static Specification<Example> getOrderSpecification() {
return (root, cq, cb) -> {
final Expression<Object> orderCase = cb.selectCase(root.get(Example_.PROCESSING_STATUS))
.when(ExampleStatus.PENDING.name(), 0)
.when(ExampleStatus.ERROR.name(), 1)
// ...
.otherwise(99);
final Order order = cb.asc(orderCase);
cq.orderBy(order);
return null;
};
} |
2.7.5 also have this bug |
Hello, The problem is still present in version 2.7.6 I dont find any workaround, the solution from @incepter dont work when we use it with PostgreSQL DISTINCT Thanks in advance, |
When using Specifications, order-by must be an expression and be translated into such. This will be addressed via #3172 so closing this one as duplicate. |
Milan Milanov opened DATAJPA-1643 and commented
I'm using the spring boot starter JPA version 2.2.1 RELEASE, which pulls the spring data JPA project with the same dependency. I'd like to use the specification + paging findAll method, but with a twist, that the sorting should be done based on a function, and not on a simple property.
Running this code I get an exception saying that
No property nlssort(entity found for type Entity!
. The same question is asked here, and in fact the accepted answer actually works. The problem is that adding a query doesn't play along with a specification. Just for test i tried:Then the query is actually generated and executed, but all results are just sorted, nothing is filtered. Also i don't know how this would work since there are aliases, but nevertheless:
Affects: 2.2.3 (Moore SR3)
The text was updated successfully, but these errors were encountered: