gpt4 book ai didi

使用 Spring 和 Hibernate 的 java.lang.NoSuchMethodError : antlr. collections.AST.getLine()

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

我使用 Spring 和 Hibernate,但总是收到此错误消息:

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()

当我在存储库中进行自定义定义时会发生这种情况:

public interface UserRepository extends JpaRepository<User, Long> 
{
@Query("select u from User u where username = ?1")
List<User> findByUsername(String username);

@Query("select u from User u where username = ?1 and password = ?2")
List<User> findByUsernameAndPassword(String username, String password);
}

如果我删除这 2 个查询,那么一切都会正常。

我还添加了antlr作为依赖项:

<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.5.2</version>
</dependency>

但这并没有成功解决我的问题。

Spring :3.2.3 发布

hibernate :

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jpamodelgen</artifactId>
<version>1.2.0.Final</version>
<scope>compile</scope>
</dependency>

最佳答案

我正在使用 Spring Boot,发生此错误是因为 hibernate-core-4.3.7 使用的 antlr-2.7.7 被 struts-core-1.3.8 使用的 antlr-2.7.2 覆盖。

如果有人在 Spring Tool Suite IDE 中遇到此问题,这就是我所做的:

  • 打开项目的pom.xml
  • 在“依赖关系层次结构”选项卡中,选择“已解决的依赖关系”列表中的 antlr (2.7.2)
  • 在“依赖关系层次结构”列表的同一选项卡中,右键单击 antlr-2.7.7,然后选择“锁定传递依赖版本...”,然后单击“确定”。
  • 保存pom.xml
  • 再次运行应用

关于使用 Spring 和 Hibernate 的 java.lang.NoSuchMethodError : antlr. collections.AST.getLine(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23493462/

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