带有 Spring Data 的 Spring Boot 应用程序找不到 com.mysema.query.types EntityPath

Posted

技术标签:

【中文标题】带有 Spring Data 的 Spring Boot 应用程序找不到 com.mysema.query.types EntityPath【英文标题】:Spring Boot app with Spring Data cannot find com.mysema.query.types EntityPath 【发布时间】:2015-10-26 02:40:46 【问题描述】:

在 2015 年 7 月 30 日,我们的 Spring Boot 应用程序运行良好,但是当我们在 2015 年 8 月 3 日尝试运行它时,它失败并出现以下错误:

13:16:33.981 [org.directoryx.Application.main()] ERROR o.s.boot.SpringApplication 
- Application startup failed
java.lang.NoClassDefFoundError: com/mysema/query/types/EntityPath
    at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_51]
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_51]
    at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_51]
    at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:606)
    ~[spring-core-4.2.0.RC2.jar:4.2.0.RC2]...

我们注意到 Spring 框架在该时间范围内有一个新版本。我们尝试将 Spring Boot 依赖项从 1.3.0.M1 更新到 1.3.0.M2,但这并没有解决问题。

有关详细信息,请参阅full POM。

任何帮助将不胜感激!

【问题讨论】:

Google 显示此特定 NoClassDefFoundError 的多个链接:它们都指向 JPA 版本。看这里,例如:***.com/questions/16218100 【参考方案1】:

Intellij IDEA中的依赖图和有效POM显示:Spring 4.2.0.RC2

在 POM 的属性中显式设置 4.2.0.RELEASE 版本似乎可以解决问题:

<properties>
    <spring.version>4.2.0.RELEASE</spring.version>
</properties>

【讨论】:

以上是关于带有 Spring Data 的 Spring Boot 应用程序找不到 com.mysema.query.types EntityPath的主要内容,如果未能解决你的问题,请参考以下文章

带有分页的 Spring Data 和 Native Query

带有 Spring Boot 的 Spring Data JPA 中的多个数据源,[重复]

带有嵌套字段和映射的 Spring Data 弹性搜索

在 Spring Boot + Spring Data Rest 中反序列化时忽略带有 @JsonProperty 的字段

使用带有 @Embeddable 类的 Spring Data 审计注释

带有 Spring Data JPA 的 Spring Boot 为 Oracle 数据库上的 findOne(...) 提供了无效字符问题