我使用Querydsl extension(QueryDslPredicateExecutor
)到CrudRepository
。
要从测试覆盖率测量中可靠地排除生成的Q
类,它们将生成到相应域类的专用querydsl
子包中(注释处理器选项-Aquerydsl.packageSuffix=.querydsl
)。
唉,这会导致应用程序启动ClassNotFoundException
:
java.lang.IllegalArgumentException: Did not find a query class org.example.QDomain for domain class org.example.Domain!
at org.springframework.data.querydsl.SimpleEntityPathResolver.createPath(SimpleEntityPathResolver.java:63)
at org.springframework.data.mongodb.repository.support.QueryDslMongoRepository.<init>(QueryDslMongoRepository.java:85)
at org.springframework.data.mongodb.repository.support.QueryDslMongoRepository.<init>(QueryDslMongoRepository.java:67)
…
Caused by: java.lang.ClassNotFoundException: org.example.QDomain
…
我已找到EntityPathResolver
interface,据说可以让我插入我自己的域类到 Q
类映射, .querydsl
包后缀,但我还没有找到一种方法来配置Spring Data的MongoRepositoryFactory
来选择我自己的EntityPathResolver
。
这可能吗?
答案 0 :(得分:1)
目前,唯一的方法是创建自己的MongoRepositoryFactory
变体,因为EntityPathResolver
的实例已硬连接到其中。