我遇到了一个问题,当我尝试运行 Junit 测试时会收到 ClassNotFoundException 错误。生成的查询类是 QSomeTableEntity_Q,但即使我的 Predicate 类导入 QSomeTableEntity_Q 类,它也会继续在 SomeTableRepository 中为实体寻找 QSomeTableEntity。
我在我的 maven pom < querydsl.suffix >_Q< /querydsl.suffix >
我遇到了一个问题,当我尝试运行 Junit 测试时会收到 ClassNotFoundException 错误。生成的查询类是 QSomeTableEntity_Q,但即使我的 Predicate 类导入 QSomeTableEntity_Q 类,它也会继续在 SomeTableRepository 中为实体寻找 QSomeTableEntity。
我在我的 maven pom < querydsl.suffix >_Q< /querydsl.suffix >
似乎spring jpa框架会在位于包的域类中查找q-entity。代码如下:
/**
* Returns the name of the query class for the given domain class.
*
* @param domainClass
* @return
*/
private String getQueryClassName(Class<?> domainClass) {
String simpleClassName = ClassUtils.getShortName(domainClass);
return String.format("%s.Q%s%s", domainClass.getPackage().getName(), getClassBase(simpleClassName),
domainClass.getSimpleName());
}
所以只要移动 q-entity 就可以解决问题。