gpt4 book ai didi

java - 使用 Spring 框架获取 'Named query not found'

转载 作者:搜寻专家 更新时间:2023-10-31 19:50:37 26 4
gpt4 key购买 nike

我有一个带有一组命名查询的 Java 类(实体)。当 Spring 尝试注入(inject)相关的 bean 时,它找不到其中一个查询。

例如:

@NamedQueries({
@NamedQuery(name = "Query1", query = "..."),
@NamedQuery(name = "Query2", query = "..."),
@NamedQuery(name = "Query3", query = "..."),
@NamedQuery(name = "Query4", query = "..."),
@NamedQuery(name = "Query5", query = "...")
})

当 Spring 尝试注入(inject) bean 时,我得到:

org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'myBean': Injection of resource methods failed;nested exception is
java.lang.IllegalArgumentException: Named query not found: Query3 at ...

我确定查询是正确的(它们的所有单元测试都通过了)。

有人知道它的根本原因吗?

最佳答案

  • 确保您的实体已被映射/扫描。它是用 @Entity 注释的,是添加到 persistence.xml 或相关提供程序配置中的,还是自动扫描的。

  • 我会将类的名称作为查询的前缀 - 即 MyEntity.Query1MyEntity.Query1 等。

  • 验证是否没有部署错误 - 即您的查询是否正确

关于java - 使用 Spring 框架获取 'Named query not found',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3154026/

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