【问题标题】:Why is Querydsl looking for incorrect generated entities?为什么 Querydsl 会寻找不正确的生成实体?
【发布时间】:2016-07-05 17:26:45
【问题描述】:

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

我的 maven pom 中有 _Q

【问题讨论】:

  • 错误信息?代码? “它一直在寻找 QEntity”……谁在寻找 QEntity?
  • ClassNotFound,不能给代码,实体的spring数据仓库类
  • 一枪在黑暗中:“使用目标 test-export 将 targetFolder 添加为测试编译源根目录而不是编译源根目录。” querydsl.com/static/querydsl/3.1.1/reference/html/ch02s03.html或其他问题...

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


【解决方案1】:

似乎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 即可解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2013-05-22
    • 2011-09-02
    • 2020-11-12
    • 1970-01-01
    • 2019-05-11
    • 2018-06-03
    相关资源
    最近更新 更多