报错信息:
org.springframework.dao.InvalidDataAccessApiUsageException: EntityManager is closed; nested exception is java.lang.IllegalStateException: EntityManager is closed
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:381)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:246)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:488)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)



原因是代码中query有多次读取操作如: (query.getResultList()) ,query在读取一次之后会自动关闭,

    public List<Map<String, Object>> selectUserInfo(String userId) {
        StringBuilder sql = new StringBuilder(" select user_id as userId,mobile  ");
        sql.append(" from user_info ");
        sql.append(" where user_id = :userId");
        Query query = entityManager.createNativeQuery(sql.toString());
        query.setParameter("userId", userId);
        if (query.getResultList() != null && query.getResultList().size() > 0) {
            // 将结果转化为 Map<column, value>
            query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
            return query.getResultList();
        return null;

修改之后:

	public List<Map<String, Object>> selectUserInfo(String userId) {
        StringBuilder sql = new StringBuilder(" select user_id as userId,mobile  ");
        sql.append(" from user_info ");
        sql.append(" where user_id = :userId");
        Query query = entityManager.createNativeQuery(sql.toString());
        query.setParameter("userId", userId);
        // 将结果转化为 Map<column, value>
        query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        return query.getResultList();

对比可以发现query.getResultList();查询只触发一次,就不会出现EntityManager is closed;的问题了,

报错信息: org.springframework.dao.InvalidDataAccessApiUsageException: EntityManager is closed; nested exception is java.lang.IllegalStateException: EntityManager is closed at org.springframework.or...
1、错误信息 异常:Caused by: java.lang.IllegalStateException: Method has too many Body parameters Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract com.iot.framework.core.response.CommResponse com.iot.basic.config.api.client.configdata.PushRuleClient.getByEven
query = entityManager.createQuery(hql);  for (int i = 0; i      query.setFirstResult(i *fillAccountMaxLoop);      query.setMaxResults(fillAccountMaxLoop);      list = (List)query.getResultL
代码如下:java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:405) at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488) at org.apache.struts2.disp
动作缓冲区 这个存储库提供了一种在处理片段传输和后台任务时避免“java.lang.IllegalStateException:Can not perform this action after onSaveInstanceState”的方法。 您可以在的非常权威的阅读有关该问题和可能的解决方案的更多信息。 为了避免异常,不应在 Activity 处于非可见(活动)状态时进行转换。 这可以通过简单地缓冲发送到 UI 的操作来实现,直到 UI 能够处理它们。 ##Usage 所以用例意味着一些简单的控制器被指示在后台做一些工作,一旦完成就需要报告结果。 首先,您需要一些接口让控制器在工作完成时告诉视图。 public interface ReactiveView { void showResult ( String result ); 现在控制器本身 public
报错信息: org.springframework.dao.InvalidDataAccessApiUsageException: EntityManager is closed; nested exception is java.lang.IllegalStateException: EntityManager is closed at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExcept...
Exception in thread "task-2" java.lang.IllegalStateException:EntityManagerFactory is closed 错误原因:service类不在启动类的扫描包里
processing failed; nested exception is org.activiti.engine.ActivitiIllegalArgumentException: resource 'process-2.xml' not found] with root cause org.activiti.engine.ActivitiIllegalArgumentException: resource 'process-2.xml' not found at org.activiti.e...
Maven经典错误之三:was cached in the local repository, resolution will not be reattempted until the upda 74355 CSDN-Ada助手: 嗨~好久未见你更新博文了,我们现在上线了AI创作助手哦~可为你的创作提供智能化帮助,快来试试吧~https://editor.csdn.net/md/?not_checkout=1&utmsource=blog_comment_recall,在编辑器页面右侧哦~~限免!! 同时我们为您准备了一份回归奖励,快来看看吧https://activity.csdn.net/creatActivity?id=10430&utmsource=blog_comment_recall Java值传递和引用传递详细说明 JOE_wj: Person是他定义的一个对象(封装到一个类),Person person就是创建了一个Person类型的变量 Java值传递和引用传递详细说明 透彻,正好把jvm内存模型知识又过了一遍,再结合实际例子,真的通俗易懂。 Axure RP Pro 7.0注册Key gitlab访问错误Whoops, GitLab is taking too much time to respond sbk007: 你懂个jb