spring-projects / spring-data-mongodb

Provides support to increase developer productivity in Java when using MongoDB. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
https://spring.io/projects/spring-data-mongodb/
Apache License 2.0
1.62k stars 1.09k forks source link

QueryDSL-style queries don't honor targetType @Field attribute #4359

Open onmishkin opened 1 year ago

onmishkin commented 1 year ago

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.

christophstrobl commented 1 year ago

sorry for long silence. What version of data-mongo are you referring to please? Everything seems to work as designed on current main.

onmishkin commented 1 year ago

I observed the problem on version 3.4.2.