gpt4 book ai didi

java - 使用 Maven 运行 Spring boot 应用程序时出错 : Name for parameter binding must not be null

转载 作者:行者123 更新时间:2023-11-30 06:11:18 24 4
gpt4 key购买 nike

我使用 Spring boot 1.5.12 和 Java 8 的 Spring boot 应用程序在我的开发环境中执行得非常好,但是当部署到测试环境时,我遇到了困难:

我使用以下命令启动应用程序:mvn spring-boot:run 并且执行因错误而停止:

java.lang.IllegalArgumentException: Name for parameter binding must not be null or empty! On JDKs < 8, you need to use @Param for named parameters, on JDK 8 or better, be sure to compile with -parameters.

我做了一些搜索并了解为了让我的存储库方法起作用,就像这样:

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends JpaRepository<User, Long>, UserRepositoryCustom {

@Query("SELECT u FROM User u WHERE u.primaryEmail.emailAddress = :emailAddress "
+ "AND u.deleted = 0")
Optional<User> findByPrimaryEmailAddress(String emailAddress);

我需要使用“-parameters”选项进行编译,因为我没有将@Param注释放在参数“emailAddress”上。

它可以在 Eclipse 中工作,因为有一个为编译器激活的选项,但是当我使用 maven 在 Eclipse 之外编译应用程序时,必须设置该选项。

我的问题是在 Spring boot documentation ,并且因为我在 pom.xml 中使用默认的 spring-boot-maven-plugin

    <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

它应该自动管理这个编译器选项,但似乎没有。

当我比较 spring-boot-starter-parent-1.5.12.RELEASE.pom 和 latest version of spring boot 的 pom 时在 github 上,我在 1.5.12 版本上看不到

<parameters>true</parameters>

您知道如何解决我的问题吗?

我会尝试用带有“-parameters”编译器参数的maven-compiler-plugin替换spring-boot-maven-plugin,但如果我可以使用默认的spring-boot-maven-plugin,我会更有信心.

谢谢!

最佳答案

我认为 spring-boot-maven-plugin 中的选项“-parameters”可能是最近添加的,并且 Spring boot 1.5.12 的文档不正确(可能适用于 Spring boot 2.0.0)

我通过配置自己的 Maven 编译器解决了这个问题:

    <plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>

重要:必须设置“-parameters”arg

关于java - 使用 Maven 运行 Spring boot 应用程序时出错 : Name for parameter binding must not be null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com