spring-projects / spring-projects/spring-data-mongodb
QueryDSL-style queries don't honor targetType @Field attribute
Open
@christophstrobl is already working on this.
Since Apr 17, 2023.
status: feedback-provided
type: bug
- Dominant language
- Java
- Stars
- 1.7k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
I have a @Document class, Foo with a field like this:
@Field(value = "bar", targetType = FieldType.OBJECT_ID)
String bar;
I'm using QueryDSL so I also end up with a QFoo generated class. In another class, I have a field r whose type is a @Repository interface R that implements QuerydslPredicateExecutor.
When I call r.findAll(QFoo.foo.bar.eq("...") I expect the "..." to be converted to an ObjectId as part of the construction of the MongoDB query but instead it gets passed through as a string--i.e., the query looks like:
{bar: "..."}
so the query doesn't work as expected.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.