【发布时间】:2019-11-30 11:43:17
【问题描述】:
由于 Hibernate 不允许我使用未映射的联接表编写联接查询,因此我在我的 spring book 应用程序中使用了相当多的本机查询。我遇到了这个article,它帮助我将原生查询完美地投射到 DTO 中。如文章中所述,我正在使用带有 @Data (Lombok) 注释的 DTO 接口。当我通过“作为 Spring Boot 应用程序运行”在 Eclipse 中本地运行它时,它就像一个魅力。但是当我尝试mvn package 以部署 JAR 时,我遇到了编译错误,指出
myDTO.java:[8,1] @Data is only supported on a class.
当我在 eclipse 中运行它时,我不明白它是如何工作的那么好,而 maven 给了我一个编译错误。
编辑:它适用于 Java 8(在 eclipse 中使用)并在 Java 11(全局路径版本)中引发编译错误。
【问题讨论】:
-
在使用 mvn 或 eclipse 运行时,我会尝试找出类路径或配置中的差异。
-
你是如何在 pom 中配置 Lombok 的?
-
@D.Lawrence 我没有在我的 pom.xml 中为 Lombok 做任何额外的配置。刚刚添加了依赖
-
@ldz 感谢您的指点。看来我在Eclipse中使用JDK11内的Java SE 1.8,而默认路径直接使用JDK 11。
-
你不能在接口上添加@Data,因为它们的属性是隐式的public static final。
标签: java spring eclipse maven lombok