Querydsl为什么要查找生成的实体不正确?

时间:2016-03-18 19:57:11

标签: spring-data spring-data-jpa querydsl repository-design

我遇到一个问题,当我尝试运行Junit测试时,我会收到ClassNotFoundException错误。生成的查询类是QSomeTableEntity_Q,但它仍然在实体的SomeTableRepository中查找QSomeTableEntity,即使我的Predicate类导入了QSomeTableEntity_Q类。

我有我的maven pom < querydsl.suffix> _Q< /querydsl.suffix>

1 个答案:

答案 0 :(得分:0)

看起来spring jpa框架会在域类的package中寻找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即可解决问题。