GVKun编程网logo

org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭(已关闭result set)

76

对于想了解org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭的读者,本文将是一篇不可错过的文章,

对于想了解org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭的读者,本文将是一篇不可错过的文章,我们将详细介绍已关闭result set,并且为您提供关于Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...、Hibernate Envers OneToMany Cascade.ALL org.hibernate.HibernateException:找到多个具有给定标识符的行、hibernate 报错 org.hibernate.HibernateException: No CurrentSessionContext configured!、Hibernate 框架:org.hibernate.exception.SQLGrammarException: Cannot open connection at org.hibernate...的有价值信息。

本文目录一览:

org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭(已关闭result set)

org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭(已关闭result set)

我正在尝试使用Hibernate
5创建或更新用户,并且抛出以下异常:org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭

我正在使用以下技术:

  • Spring 4

    *Dormancy 5

    *Marvin

    *Erosion

这是我的UserDaoImpl.Java

package com.fasttrack.users.dao;import java.util.List;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import com.fasttrack.users.model.User;@Repository@Transactionalpublic class UserDaoImpl extends AbstractDao implements UserDao{    @Autowired    private SessionFactory sessionFactory;    public boolean saveUser(User user)    {         Session session=sessionFactory.getCurrentSession();          try          {             session.persist(user);             return true;          }          catch (Exception e)           {            e.printStackTrace();            return false;        }          finally           {              session.close();            }    }    @SuppressWarnings("unchecked")    public List<User> getUsers()    {         List<User> users;         Session session=sessionFactory.getCurrentSession();          try          {              users=(List<User>) session.createQuery("FROM USER");               return users;          }          catch (Exception e)           {            e.printStackTrace();        }          finally {              session.close();            }        return null;    }    public User getUser(String id)    {         User user;         Session session=sessionFactory.getCurrentSession();          try          {              user=(User)session.get(User.class,id);               return user;          }          catch (Exception e)           {            e.printStackTrace();            return null;        }          finally           {              session.close();            }    }    public boolean updateUser(User user)    {        Session session = sessionFactory.getCurrentSession();        try            {                session.saveOrUpdate(user);                return true;            }        catch (Exception e)            {                e.printStackTrace();                return false;            }        finally            {                session.close();            }    }    public boolean deleteUserById(String id)    {        User user = new User();        user.setId(id);        Session session = sessionFactory.getCurrentSession();        try            {                session.delete(user);                return true;            }        catch (Exception e)            {                e.printStackTrace();                return false;            }        finally            {                session.close();            }    }}

这是我的TestUserDao.java

import com.fasttrack.users.dao.UserDao;import com.fasttrack.users.model.User;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("/Hibernate-test.xml")public class TestUserDao{    @Autowired(required=true)    public UserDao userDao;    @Test    public void testSaveUser()    {        User user=new User();        user.setFirstName("TestUser1");        boolean result=userDao.saveUser(user);    }}

错误信息:

Mar 01, 2017 1:14:52 PM org.springframework.test.context.support.DefaultTestContextBootstrapper getDefaultTestExecutionListenerClassNamesINFO: Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]Mar 01, 2017 1:14:52 PM org.springframework.test.context.support.DefaultTestContextBootstrapper getTestExecutionListenersINFO: Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@6be46e8f, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@3567135c, org.springframework.test.context.support.DependencyInjectionTestExecutionListener@327471b5, org.springframework.test.context.support.DirtiesContextTestExecutionListener@4157f54e, org.springframework.test.context.transaction.TransactionalTestExecutionListener@90f6bfd, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@47f6473]Mar 01, 2017 1:14:52 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitionsINFO: Loading XML bean definitions from class path resource [Hibernate-test.xml]Mar 01, 2017 1:14:53 PM org.springframework.context.support.GenericApplicationContext prepareRefreshINFO: Refreshing org.springframework.context.support.GenericApplicationContext@2a5ca609: startup date [Wed Mar 01 13:14:53 EST 2017]; root of context hierarchyMar 01, 2017 1:14:53 PM org.springframework.context.support.PropertySourcesPlaceholderConfigurer loadPropertiesINFO: Loading properties file from class path resource [database.properties]Mar 01, 2017 1:14:53 PM org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor <init>INFO: JSR-330 ''javax.inject.Inject'' annotation found and supported for autowiringMar 01, 2017 1:14:53 PM org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {5.2.6.Final}Mar 01, 2017 1:14:53 PM org.hibernate.cfg.Environment <clinit>INFO: HHH000206: hibernate.properties not foundMar 01, 2017 1:14:53 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}Mar 01, 2017 1:14:54 PM org.hibernate.dialect.Dialect <init>INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialectMar 01, 2017 1:14:54 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreationINFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4Mar 01, 2017 1:14:54 PM org.springframework.orm.hibernate5.HibernateTransactionManager afterPropertiesSetINFO: Using DataSource [org.apache.commons.dbcp.BasicDataSource@130d63be] of Hibernate SessionFactory for HibernateTransactionManagerGenerated Id: USER0Mar 01, 2017 1:14:55 PM org.springframework.orm.hibernate5.HibernateTransactionManager doRollbackOnCommitExceptionSEVERE: Commit exception overridden by rollback exceptionjava.lang.IllegalStateException: org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@6b410923 is closed    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.errorIfClosed(AbstractLogicalConnectionImplementor.java:37)    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:128)    at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:247)    at org.hibernate.resource.jdbc.internal.AbstractLogicalConnectionImplementor.commit(AbstractLogicalConnectionImplementor.java:79)    at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:221)    at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)    at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:582)    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)    at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:504)    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:292)    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)    at com.sun.proxy.$Proxy31.saveUser(Unknown Source)    at TestUserDao.testSaveUser(TestUserDao.java:23)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

Hibernate xml文件:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xmlns:context="http://www.springframework.org/schema/context"        xmlns:tx="http://www.springframework.org/schema/tx"        xmlns:aop="http://www.springframework.org/schema/aop"        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd                            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd                            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd                            http://www.springframework.org/schema/tx  http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">    <context:property-placeholder location="classpath:database.properties" />      <context:component-scan  base-package="com.timelee.*" />    <tx:annotation-driven transaction-manager="transactionManager"/>     <!--  <bean id="dataSource">  -->     <bean id="dataSource" destroy-method="close">       <property name="driverClassName" value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}"/>    </bean>    <bean id="sessionFactory">        <property name="dataSource" ref="dataSource"/>        <property name="packagesToScan">            <list>                <value>com.timelee.timesheet.model</value>                <value>com.timelee.users.model</value>                <value>com.timelee.*</value>            </list>        </property>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">${hibernate.dialect}</prop>                <prop key="hibernate.show_sql">${hibernate.show_sql:false}</prop>                <prop key="hibernate.format_sql">${hibernate.format_sql:false}</prop>                <prop key="hibernate.hbm2ddl.auto">update</prop>            </props>        </property>           </bean>    <bean id="transactionManager">        <property name="sessionFactory" ref="sessionFactory" />    </bean>    <bean id="persistenceExceptionTranslationPostProcessor"/></beans>

答案1

小编典典

我在您的错误消息“ 严重提交异常被回滚异常覆盖
”中发现了一些奇怪的东西。如果查看UserDaoImpl.Java文件中的try块,则具有return语句,该语句在返回之前关闭休眠连接。而且你必须session.close()在finally块声明,没有任何意义,因为连接已经关闭。您介意删除session.close()声明,然后重试。让我知道这是否可以解决您的问题。

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...

java.lang.IllegalStateException: Failed to load ApplicationContext

    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''entityManagerFactory'' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1778)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1105)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:312)
    at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117)
    ... 24 more
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
    at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
    at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904)
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935)
    at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:57)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:390)
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:377)
    at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1837)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1774)
    ... 39 more
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ''hibernate.dialect'' not set
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
    at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
    ... 56 more

第一次使用 springboot+jpa 进行操作数据库,刚启动就爆出来异常:

应该在 yml 配置文件中加上:

spring:
   jpa:
    show-sql: true
    hibernate:
      ddl-auto: create
    database-platform: org.hibernate.dialect.PostgreSQLDialect

 

Hibernate Envers OneToMany Cascade.ALL org.hibernate.HibernateException:找到多个具有给定标识符的行

Hibernate Envers OneToMany Cascade.ALL org.hibernate.HibernateException:找到多个具有给定标识符的行

好的,问题是当你尝试

Car car = new Car();
car.setBrand("Alfa Romeo");
Set<Car> cars = new HashSet<>();
cars.add(car);

Driver driver = new Driver();
driver.setCars(cars);

em.persist(driver);

单向一对多,hibernate执行3条sql语句:

  1. 插入驱动程序 (id) 值 (?)
  2. 插入汽车(品牌,id)值(?,?)
  3. 更新汽车设置 driver_id=?其中 id=?

切换到双向关系

@Entity
@Audited
public class Car {

    @Id
    @GeneratedValue
    private Long id;

    private String brand;

    @ManyToOne
    private Driver driver;

    // Constructor,getters and setters omitted
}

@Entity
@Audited
public class Driver {

    @Id
    @GeneratedValue
    private Long id;

    @OneToMany(cascade = CascadeType.ALL,mappedBy = "driver")
    @AuditJoinTable(name = "car_aud")
    private Set<Car> cars = new HashSet();

    public void setCars(Set<Car> cars) {
        books.forEach(b -> b.setDriver(this));
        this.cars.addAll(cars);
    }

    // Constructor,getters and setters omitted

}

使 Hibernate 只创建 2 个 SQL 语句:

  1. 插入驱动程序 (id) 值 (?)
  2. 插入汽车 (driver_id,brand,id) 值 (?,?,?)

结果相同。所以CAR_AUD表中不会有歧义。

hibernate 报错 org.hibernate.HibernateException: No CurrentSessionContext configured!

hibernate 报错 org.hibernate.HibernateException: No CurrentSessionContext configured!

org.hibernate.HibernateException: No CurrentSessionContext configured!
at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:695)
at cn.itcast.utils.HibernateUtils.getSessionObject(HibernateUtils.java:20)
at cn.itcast.hibernatetest.HibernateSelect.testTx01(HibernateSelect.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

可能是使用 getCurrentSession () 出现了问题,问题原因可能是 hibernate.cfg.xml 文件中的

<!-- 在hibernate核心配置文件中配置 -->
        <property name="hibernate.current_session_context_class">thread</property>

没有配置对。修改便是。

 

Hibernate 框架:org.hibernate.exception.SQLGrammarException: Cannot open connection   at org.hibernate...

Hibernate 框架:org.hibernate.exception.SQLGrammarException: Cannot open connection at org.hibernate...

报错信息

org.hibernate.exception.SQLGrammarException: Cannot open connection at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java92

报错原因

在数据库中没有对应的配置文件的数据库名称

解决方法

创建或者修改正确的数据库名称即可

报错信息

Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
 1 java.lang.ExceptionInInitializerError
 2     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 3     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 4     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 5     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 6     at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)
 7     at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266)
 8     at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 9     at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263)
10     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
11     at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
12     at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
13     at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
14     at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
15     at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
16     at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
17     at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
18     at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
19     at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
20     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
21     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
22     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
23     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
24 Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer]
25     at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:110)
26     at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:135)
27     at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init>(EntityEntityModeToTuplizerMapping.java:80)
28     at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:323)
29     at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:475)
30     at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:133)
31     at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84)
32     at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:297)
33     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385)
34     at com.mikey.util.HibernateUtil.<clinit>(HibernateUtil.java:11)
35     ... 22 more
36 Caused by: java.lang.reflect.InvocationTargetException
37     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
38     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
39     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
40     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
41     at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:107)
42     ... 31 more
43 Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for students in class com.mikey.bean.Classs
44     at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:328)
45     at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:321)
46     at org.hibernate.mapping.Property.getGetter(Property.java:304)
47     at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:299)
48     at org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:158)
49     at org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.java:77)
50     ... 36 more
errorMessage

报错原因

在映射文件和持久化类的配置不正确,请检查修改配置参数 

解决方法

检查持久化类的映射文件配置参数

 

关于org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl@779de014已关闭已关闭result set的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when ...、Hibernate Envers OneToMany Cascade.ALL org.hibernate.HibernateException:找到多个具有给定标识符的行、hibernate 报错 org.hibernate.HibernateException: No CurrentSessionContext configured!、Hibernate 框架:org.hibernate.exception.SQLGrammarException: Cannot open connection at org.hibernate...等相关内容,可以在本站寻找。

本文标签: