gpt4 book ai didi

java - JPA 命名查询无法使用 Hibernate 解析

转载 作者:行者123 更新时间:2023-12-01 14:36:02 25 4
gpt4 key购买 nike

我添加了新的命名查询:

@Entity(name = "books")
@NamedQueries({
@NamedQuery(name = "books.findByCategoryId",
query = "SELECT DISTINCT b.* FROM books b WHERE b.categoryId =:categoryId")
})
public class Book implements Serializable {

我使用 Hibernate DAO 实现:

@Override
public Set<Book> findByCategory(Long categoryId) {
return new LinkedHashSet<Book>( sessionFactory.getCurrentSession().
getNamedQuery("books.findByCategoryId").
setParameter("categoryId", categoryId).list());
}

出于某种原因,我在 IDE 中看到:无法解析查询“books.findByCategoryId”。当我启动应用程序时,我得到:

may 10, 2013 6:55:05 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /SpringWebFlow threw load() exception
org.hibernate.HibernateException: Errors in named queries: books.findByCategoryId
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:528)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1760)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1798)

最佳答案

Hibernate 错误:“命名查询中的错误:books.findByCategoryId”意味着您的查询存在语法问题。来自 IDE 的消息有点误导。正如 @Piotr 所指出的,将查询中的“b.*”更改为“b”。

The Hibernate Query Language没有提到通配符。

关于java - JPA 命名查询无法使用 Hibernate 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16482404/

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