org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.ast.QuerySyntaxException: Article is not mapped [Select count(article.id) from Article article]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Article is not mapped [Select count(article.id) from Article article]
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:271)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:97)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)
at org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:189)
at org.springframework.orm.jpa.JpaTemplate.executeFind(JpaTemplate.java:151)
at org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:311)
at org.springframework.orm.jpa.JpaTemplate.find(JpaTemplate.java:307)
at org.lee.weixin.dao.impl.ArticleDaoImpl.countArticle(ArticleDaoImpl.java:49)
at org.lee.weixin.service.impl.ArticleServiceImpl.countArticle(ArticleServiceImpl.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
at $Proxy14.countArticle(Unknown Source)
at org.lee.weixin.action.FetchArticlesServlet.doPost(FetchArticlesServlet.java:33)
at org.lee.weixin.action.FetchArticlesServlet.doGet(FetchArticlesServlet.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Article is not mapped [Select count(article.id) from Article article]
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:601)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:358)
at $Proxy15.createQuery(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springframework.orm.jpa.JpaTemplate$CloseSuppressingInvocationHandler.invoke(JpaTemplate.java:404)
at $Proxy16.createQuery(Unknown Source)
at org.springframework.orm.jpa.JpaTemplate$9.doInJpa(JpaTemplate.java:313)
at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:184)
... 36 more
Caused by: org.hibernate.hql.ast.QuerySyntaxException: Article is not mapped [Select count(article.id) from Article article]
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:277)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3056)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:251)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:134)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:93)
... 50 more
说明对象和实体之间映射出问题。
修改方法:在实体类头部加上:
@Entity
@Table (name="ARTICLE")
分享到:
相关推荐
5. **Auditing**:Spring Data JPA 提供了审计功能,可以自动记录实体的创建时间和修改时间。这可以通过 `@CreatedDate` 和 `@LastModifiedDate` 注解实现。 6. **Integration with Spring MVC**:Spring Data JPA ...
4. **修改(Update)**:只需更改托管实体的属性,JPA会在适当的时候自动更新数据库。 在使用JPA与MySQL结合时,首先需要配置JPA的持久化单元(Persistence Unit),这通常在`persistence.xml`文件中完成,包括指定...
4.5 更新Entity:对已持久化的实体对象进行修改后,调用EntityManager的merge()方法可将变更同步到数据库。 **总结** JPA作为Java平台上的ORM标准,简化了Java应用的数据库操作。通过定义实体类,可以轻松地将对象...
在企业级开发中,Java JPA(Java Persistence API)被用来处理对象关系映射,简化数据库操作。本话题将探讨如何利用Apache POI库从Excel模板生成带有JPA注解的Java实体类,实现高效的数据模型自动化创建。 Apache ...
Java Persistence API (JPA) 是Java平台上的一个标准,用于对象关系映射(ORM),它允许开发人员将Java对象与数据库中的表进行映射,从而简化数据操作。在实际开发中,为了确保JPA的正确性和效率,我们需要对JPA进行...
使用@Transactional注解可以声明事务边界,对数据库的修改操作要么全部成功,要么在遇到错误时全部回滚,保证了数据的一致性。 7. 关系映射 JPA支持各种关系映射,包括一对一(@OneToOne)、一对多(@OneToMany)、...
《Pro JPA2》是一本深入探讨Java Persistence API(JPA)2.0版本的专业书籍,旨在帮助开发者全面理解和熟练运用这一强大的ORM(对象关系映射)框架。JPA是Java平台上的标准,用于管理数据库中的对象关系,它极大地...
Spring Data JPA支持审计功能,通过`@CreationTimestamp`、`@UpdateTimestamp`和`@LastModifiedDate`注解,可以自动维护实体的创建时间和最后修改时间。 10. **Repository扩展** 如果标准的Repository接口不能...
在IT行业中,JPA(Java Persistence API)和Hibernate是两种广泛使用的对象关系映射(ORM)框架,它们简化了Java应用程序与数据库之间的交互。而反射是Java编程语言中的一种强大特性,允许运行中的代码动态地获取类...
在Java Persistence API (JPA)中,一对一(One-to-One)映射是一种关联关系,它表示一个实体与另一个实体之间存在一对一的对应关系。这种关系通常用于当两个实体之间存在非常特定的对应关系时,例如一个人只有一个...
JPA是Java EE规范,用于管理关系数据库中的数据,提供了ORM(对象关系映射)功能。Spring Data JPA通过提供泛型 Repository 接口,自动实现了一些常见的CRUD操作,让开发者可以专注于业务逻辑,而不是繁琐的数据访问...
1. **实体(Entity)**:在JPA中,实体是数据库表的映射,通过@Entity注解标识。开发者可以定义实体类,属性对应数据库表的列。 2. **持久化上下文(Persistence Context)**:Hibernate管理的内存区域,其中的实体...
4. **JPA 注解**:如 `@Entity`、`@Table`、`@Id`、`@GeneratedValue` 等,用于标记实体类和字段,指定数据库映射关系。 三、使用步骤 1. **配置**:在 Spring Boot 的配置文件中启用 Spring Data JPA 和数据库连接...
而JPA(Java Persistence API)则是Java平台上的对象关系映射标准,它提供了数据持久化框架,将对象模型与关系数据库之间的交互变得更加简单。 在EJB3中结合JPA进行开发,可以极大地提升数据库操作的效率和便捷性。...
JPA 定义了一系列异常来处理可能发生的错误情况,如 PersistenceException、EntityExistsException 等。 #### 四、实体 实体是 JPA 中的核心概念之一,代表了要存储在数据库中的对象模型。 ##### 4.1 对持久类的...
在宠物商店应用中,对数据库的修改会作为一个事务进行,如果出现错误则回滚,以保证数据完整性。 8. **Repository模式**: 虽然JPA直接提供了数据库操作的能力,但在实际应用中,通常会采用Repository模式封装这些...
然而,在某些场景下,例如实体的复制或备份,我们可能需要对JPA实体进行克隆,以避免原始数据被修改的风险。这就是JPA Cloner的角色所在,它是一款专为JPA实体克隆设计的工具,能够有效地帮助开发者解决这个问题。 ...
JPA框架支持使用注解来定义实体类与数据库表之间的映射关系,极大地简化了配置工作。要使用JPA注解,首先需要在项目中添加相应的依赖库,如`ejb3-persistence.jar`等。 #### 三、常用JPA注解详解 1. **@Entity** ...
- **更新(Update)**: 修改实体属性后,调用`save()`方法,Hibernate会更新对应记录。 - **删除(Delete)**: `deleteById()`方法用于删除单个实体,`deleteAll()`删除所有实体,`delete()`方法接收一个实体对象...