我正在使用 spring-data-mongodb:1.2.0.RELEASE 和 QueryDSL:2.9.0。
我有一堂课如下:
@Document(collection = "A")
public class A {
public BigInteger id;
}
和一个存储库如下:
@Repository
public interface ARepository extends MongoRepository<A, BigInteger>, QueryDslPredicateExecutor<A>
当我按如下方式查询我的存储库时:QA.a.id.eq(a.id)
一切都很好,我可以在 mongo db 日志中看到下一个查询:
query db.A query: { _id: ObjectId('51b8a1dfea34feab29624713') }
但是当我查询一组标识符时
QA.a.id.in(a.id,a.id)
我什么都得不到。我可以看到查询是:
command db.$cmd command: { count: "A", query: { _id: { $in: [ "25291516816863698974474381015", "25291516816863698974474381015" ] } } }
哪个没有使用 ObjectId 包装。那么,这是一个错误吗?