【问题标题】:Hibernate not updating database (despite it commits and reads it)Hibernate 不更新数据库(尽管它提交并读取它)
【发布时间】:2020-06-20 03:47:46
【问题描述】:

我没有例外,一切似乎都很好,但是在将一些数据插入数据库后,它并没有持久化。我不知道我是否需要一些特定的注释,或者我在某些 Spring 配置中失败了。

实体 bean:

@Entity
@Table(name="IMAGEN")
public class Imagen {

    @Id
    @Column(name="ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name="NOMBRE",
            nullable = false)
    private String nombre;

    @Column(name="CATEGORIA",
            nullable = false)
    private String categoria;

    //Getters and setters...

表的 SQL 脚本:

CREATE TABLE IMAGEN(
ID INTEGER IDENTITY PRIMARY KEY,
NOMBRE VARCHAR(64) NOT NULL,
CATEGORIA VARCHAR(32)
);

Imagen 存储库:

@Repository
public interface RepositorioImagen extends JpaRepository<Imagen,Integer> {}

图像服务:

@Service
public class ServicioImagen {

    @Autowired RepositorioImagen repo;

    public List<Imagen> getAll(){
        return repo.findAll();
    }

    public void saveImage(Imagen im) {
        repo.save(im);
    }

和控制器:

@Controller
public class Controlador {
    @Autowired private ServicioImagen servicioImagen;

    private void someMethod(){
        servicioImagen.getAll().forEach(e -> System.out.println(e));

        Imagen imagen = new Imagen();
        imagen.setNombre("SOMENAME");
        servicioImagen.saveImage(imagen);

        servicioImagen.getAll().forEach(e -> System.out.println(e));
    }

}

我在创建数据库时在表中插入了一些默认记录,getAll() 方法可以很好地检索它们,但是当我save() 一个新 bean 时,它不会保留在数据库中(getAll() 检索相同信息和以前一样)。我在this 中阅读了打开记录器的答案,然后我发现 Hibernate 甚至提交了查询。我不知道还要做什么,这是插入的日志:

2020-03-07 18:33:55.611 TRACE 1236 --- [lication Thread] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session.  tenant=null, owner=null
2020-03-07 18:33:55.612 TRACE 1236 --- [lication Thread] o.h.s.i.AbstractServiceRegistryImpl      : Initializing service [role=org.hibernate.resource.transaction.spi.TransactionCoordinatorBuilder]
2020-03-07 18:33:55.612 TRACE 1236 --- [lication Thread] o.h.s.i.AbstractServiceRegistryImpl      : Initializing service [role=org.hibernate.stat.spi.StatisticsImplementor]
2020-03-07 18:33:55.612 DEBUG 1236 --- [lication Thread] o.h.stat.internal.StatisticsInitiator    : Statistics initialized [enabled=false]
2020-03-07 18:33:55.613 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : Opened Session [1956899b-7cc9-4f6a-bb51-5b45abbfed69] at timestamp: 15836024356
2020-03-07 18:33:55.616 DEBUG 1236 --- [lication Thread] o.h.e.t.internal.TransactionImpl         : begin
2020-03-07 18:33:55.616 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : Preparing to begin transaction via JDBC Connection.setAutoCommit(false)
2020-03-07 18:33:55.616 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : Transaction begun via JDBC Connection.setAutoCommit(false)
2020-03-07 18:33:55.617 TRACE 1236 --- [lication Thread] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterBeginCallback
2020-03-07 18:33:55.622 TRACE 1236 --- [lication Thread] .i.SessionFactoryImpl$SessionBuilderImpl : Opening Hibernate Session.  tenant=null, owner=null
2020-03-07 18:33:55.623 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : Opened Session [ac23f2c2-d709-4a5e-a206-68fe3e65bd51] at timestamp: 15836024356
2020-03-07 18:33:55.626 DEBUG 1236 --- [lication Thread] o.h.e.i.DefaultMergeEventListener        : EntityCopyObserver strategy: disallow
2020-03-07 18:33:55.629 TRACE 1236 --- [lication Thread] o.hibernate.engine.spi.IdentifierValue   : ID unsaved-value: null
2020-03-07 18:33:55.630 TRACE 1236 --- [lication Thread] o.h.e.i.AbstractSaveEventListener        : Detached instance of: com.bcadaval.memefinder3020.modelo.beans.Imagen
2020-03-07 18:33:55.630 TRACE 1236 --- [lication Thread] o.h.e.i.DefaultMergeEventListener        : Merging detached instance
2020-03-07 18:33:55.639 TRACE 1236 --- [lication Thread] o.h.e.internal.DefaultLoadEventListener  : Loading entity: [com.bcadaval.memefinder3020.modelo.beans.Imagen#5]
2020-03-07 18:33:55.639 TRACE 1236 --- [lication Thread] o.h.e.internal.DefaultLoadEventListener  : Attempting to resolve: [com.bcadaval.memefinder3020.modelo.beans.Imagen#5]
2020-03-07 18:33:55.639 TRACE 1236 --- [lication Thread] o.h.e.internal.DefaultLoadEventListener  : Object not resolved in any cache: [com.bcadaval.memefinder3020.modelo.beans.Imagen#5]
2020-03-07 18:33:55.639 TRACE 1236 --- [lication Thread] o.h.p.entity.AbstractEntityPersister     : Fetching entity: [com.bcadaval.memefinder3020.modelo.beans.Imagen#5]
2020-03-07 18:33:55.639 DEBUG 1236 --- [lication Thread] org.hibernate.loader.Loader              : Loading entity: [com.bcadaval.memefinder3020.modelo.beans.Imagen#5]
2020-03-07 18:33:55.649 DEBUG 1236 --- [lication Thread] org.hibernate.SQL                        : select imagen0_.ID as ID1_1_1_, imagen0_.CATEGORIA as CATEGORI2_1_1_, imagen0_.NOMBRE as NOMBRE3_1_1_, etiquetas1_.IDIMAGEN as IDIMAGEN1_2_3_, etiqueta2_.ID as IDETIQUE2_2_3_, etiqueta2_.ID as ID1_0_0_, etiqueta2_.NOMBRE as NOMBRE2_0_0_ from IMAGEN imagen0_ left outer join IMAGEN_ETIQUETA etiquetas1_ on imagen0_.ID=etiquetas1_.IDIMAGEN left outer join ETIQUETA etiqueta2_ on etiquetas1_.IDETIQUETA=etiqueta2_.ID where imagen0_.ID=?
2020-03-07 18:33:55.654 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Registering statement [org.hsqldb.jdbc.JDBCPreparedStatement@2673b10e[sql=[select imagen0_.ID as ID1_1_1_, imagen0_.CATEGORIA as CATEGORI2_1_1_, imagen0_.NOMBRE as NOMBRE3_1_1_, etiquetas1_.IDIMAGEN as IDIMAGEN1_2_3_, etiqueta2_.ID as IDETIQUE2_2_3_, etiqueta2_.ID as ID1_0_0_, etiqueta2_.NOMBRE as NOMBRE2_0_0_ from IMAGEN imagen0_ left outer join IMAGEN_ETIQUETA etiquetas1_ on imagen0_.ID=etiquetas1_.IDIMAGEN left outer join ETIQUETA etiqueta2_ on etiquetas1_.IDETIQUETA=etiqueta2_.ID where imagen0_.ID=?], parameters=[[null]]]]
2020-03-07 18:33:55.655 TRACE 1236 --- [lication Thread] o.h.e.jdbc.internal.JdbcCoordinatorImpl  : Registering last query statement [org.hsqldb.jdbc.JDBCPreparedStatement@2673b10e[sql=[select imagen0_.ID as ID1_1_1_, imagen0_.CATEGORIA as CATEGORI2_1_1_, imagen0_.NOMBRE as NOMBRE3_1_1_, etiquetas1_.IDIMAGEN as IDIMAGEN1_2_3_, etiqueta2_.ID as IDETIQUE2_2_3_, etiqueta2_.ID as ID1_0_0_, etiqueta2_.NOMBRE as NOMBRE2_0_0_ from IMAGEN imagen0_ left outer join IMAGEN_ETIQUETA etiquetas1_ on imagen0_.ID=etiquetas1_.IDIMAGEN left outer join ETIQUETA etiqueta2_ on etiquetas1_.IDETIQUETA=etiqueta2_.ID where imagen0_.ID=?], parameters=[[null]]]]
2020-03-07 18:33:55.658 TRACE 1236 --- [lication Thread] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [INTEGER] - [5]
2020-03-07 18:33:55.659 TRACE 1236 --- [lication Thread] org.hibernate.loader.Loader              : Bound [2] parameters total
2020-03-07 18:33:55.661 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Registering result set [org.hsqldb.jdbc.JDBCResultSet@20fd1f60]
2020-03-07 18:33:55.662 TRACE 1236 --- [lication Thread] org.hibernate.loader.Loader              : Processing result set
2020-03-07 18:33:55.662 TRACE 1236 --- [lication Thread] org.hibernate.loader.Loader              : Done processing result set (0 rows)
2020-03-07 18:33:55.663 TRACE 1236 --- [lication Thread] org.hibernate.loader.Loader              : Total objects hydrated: 0
2020-03-07 18:33:55.665 TRACE 1236 --- [lication Thread] o.h.e.loading.internal.LoadContexts      : Constructing collection load context for result set [org.hsqldb.jdbc.JDBCResultSet@20fd1f60]
2020-03-07 18:33:55.667 DEBUG 1236 --- [lication Thread] o.h.e.l.internal.CollectionLoadContext   : No collections were found in result set for role: com.bcadaval.memefinder3020.modelo.beans.Imagen.etiquetas
2020-03-07 18:33:55.668 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing statement [org.hsqldb.jdbc.JDBCPreparedStatement@2673b10e[sql=[select imagen0_.ID as ID1_1_1_, imagen0_.CATEGORIA as CATEGORI2_1_1_, imagen0_.NOMBRE as NOMBRE3_1_1_, etiquetas1_.IDIMAGEN as IDIMAGEN1_2_3_, etiqueta2_.ID as IDETIQUE2_2_3_, etiqueta2_.ID as ID1_0_0_, etiqueta2_.NOMBRE as NOMBRE2_0_0_ from IMAGEN imagen0_ left outer join IMAGEN_ETIQUETA etiquetas1_ on imagen0_.ID=etiquetas1_.IDIMAGEN left outer join ETIQUETA etiqueta2_ on etiquetas1_.IDETIQUETA=etiqueta2_.ID where imagen0_.ID=?], parameters=[[5]]]]
2020-03-07 18:33:55.668 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Closing result set [org.hsqldb.jdbc.JDBCResultSet@20fd1f60]
2020-03-07 18:33:55.684 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Closing prepared statement [org.hsqldb.jdbc.JDBCPreparedStatement@2673b10e[sql=[select imagen0_.ID as ID1_1_1_, imagen0_.CATEGORIA as CATEGORI2_1_1_, imagen0_.NOMBRE as NOMBRE3_1_1_, etiquetas1_.IDIMAGEN as IDIMAGEN1_2_3_, etiqueta2_.ID as IDETIQUE2_2_3_, etiqueta2_.ID as ID1_0_0_, etiqueta2_.NOMBRE as NOMBRE2_0_0_ from IMAGEN imagen0_ left outer join IMAGEN_ETIQUETA etiquetas1_ on imagen0_.ID=etiquetas1_.IDIMAGEN left outer join ETIQUETA etiqueta2_ on etiquetas1_.IDETIQUETA=etiqueta2_.ID where imagen0_.ID=?], parameters=[[5]]]]
2020-03-07 18:33:55.686 TRACE 1236 --- [lication Thread] o.h.e.jdbc.internal.JdbcCoordinatorImpl  : Starting after statement execution processing [ON_CLOSE]
2020-03-07 18:33:55.686 TRACE 1236 --- [lication Thread] o.h.e.i.StatefulPersistenceContext       : Initializing non-lazy collections
2020-03-07 18:33:55.686 DEBUG 1236 --- [lication Thread] org.hibernate.loader.Loader              : Done entity load
2020-03-07 18:33:55.686 TRACE 1236 --- [lication Thread] o.h.e.i.DefaultMergeEventListener        : Merging transient instance
2020-03-07 18:33:55.691 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Processing cascade ACTION_MERGE for: com.bcadaval.memefinder3020.modelo.beans.Imagen
2020-03-07 18:33:55.691 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Done processing cascade ACTION_MERGE for: com.bcadaval.memefinder3020.modelo.beans.Imagen
2020-03-07 18:33:55.697 TRACE 1236 --- [lication Thread] o.h.e.i.AbstractSaveEventListener        : Saving [com.bcadaval.memefinder3020.modelo.beans.Imagen#<null>]
2020-03-07 18:33:55.706 TRACE 1236 --- [lication Thread] o.hibernate.event.internal.WrapVisitor   : Wrapped collection in role: com.bcadaval.memefinder3020.modelo.beans.Imagen.etiquetas
2020-03-07 18:33:55.707 TRACE 1236 --- [lication Thread] org.hibernate.engine.spi.ActionQueue     : Adding an EntityIdentityInsertAction for [com.bcadaval.memefinder3020.modelo.beans.Imagen] object
2020-03-07 18:33:55.708 TRACE 1236 --- [lication Thread] org.hibernate.engine.spi.ActionQueue     : Adding insert with no non-nullable, transient entities: [EntityIdentityInsertAction[com.bcadaval.memefinder3020.modelo.beans.Imagen#<delayed:1>]]
2020-03-07 18:33:55.708 TRACE 1236 --- [lication Thread] org.hibernate.engine.spi.ActionQueue     : Adding resolved non-early insert action.
2020-03-07 18:33:55.711 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Processing cascade ACTION_MERGE for: com.bcadaval.memefinder3020.modelo.beans.Imagen
2020-03-07 18:33:55.714 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Cascade ACTION_MERGE for collection: com.bcadaval.memefinder3020.modelo.beans.Imagen.etiquetas
2020-03-07 18:33:55.714 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Done cascade ACTION_MERGE for collection: com.bcadaval.memefinder3020.modelo.beans.Imagen.etiquetas
2020-03-07 18:33:55.714 TRACE 1236 --- [lication Thread] org.hibernate.engine.internal.Cascade    : Done processing cascade ACTION_MERGE for: com.bcadaval.memefinder3020.modelo.beans.Imagen
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : Closing session [ac23f2c2-d709-4a5e-a206-68fe3e65bd51]
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] o.h.e.jdbc.internal.JdbcCoordinatorImpl  : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@53fca5fc]
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing JDBC resources
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] o.h.r.j.i.LogicalConnectionManagedImpl   : Closing logical connection
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing JDBC resources
2020-03-07 18:33:55.715 TRACE 1236 --- [lication Thread] o.h.r.j.i.LogicalConnectionManagedImpl   : Logical connection closed
2020-03-07 18:33:55.720 DEBUG 1236 --- [lication Thread] o.h.e.t.internal.TransactionImpl         : committing
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#beforeCompletionCallback
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : SessionImpl#beforeTransactionCompletion()
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : Automatically flushing session
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsBeforeTransactionCompletion
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : Preparing to commit transaction via JDBC Connection.commit()
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : Transaction committed via JDBC Connection.commit()
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : LogicalConnection#afterTransaction
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing JDBC resources
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] j.i.AbstractLogicalConnectionImplementor : re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] cResourceLocalTransactionCoordinatorImpl : ResourceLocalTransactionCoordinatorImpl#afterCompletionCallback(true)
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] .t.i.SynchronizationRegistryStandardImpl : SynchronizationRegistryStandardImpl.notifySynchronizationsAfterTransactionCompletion(3)
2020-03-07 18:33:55.721 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : SessionImpl#afterTransactionCompletion(successful=true, delayed=false)
2020-03-07 18:33:55.722 TRACE 1236 --- [lication Thread] org.hibernate.internal.SessionImpl       : Closing session [1956899b-7cc9-4f6a-bb51-5b45abbfed69]
2020-03-07 18:33:55.722 TRACE 1236 --- [lication Thread] o.h.e.jdbc.internal.JdbcCoordinatorImpl  : Closing JDBC container [org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl@4ec81919]
2020-03-07 18:33:55.722 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing JDBC resources
2020-03-07 18:33:55.722 TRACE 1236 --- [lication Thread] o.h.r.j.i.LogicalConnectionManagedImpl   : Closing logical connection
2020-03-07 18:33:55.727 TRACE 1236 --- [lication Thread] o.h.r.j.i.ResourceRegistryStandardImpl   : Releasing JDBC resources
2020-03-07 18:33:55.727 TRACE 1236 --- [lication Thread] o.h.r.j.i.LogicalConnectionManagedImpl   : Logical connection closed

我还注意到查询提交连接关闭(时间戳2020-03-07 18:33:55.720 for Ctrl+F),我不知道它是否与持久性有关。

【问题讨论】:

  • 你是如何调用someMethod的?
  • 其实它是JavaFX的一个按钮动作,但我100%确定它被调用了。我没有将其添加到问题中,因为它毫无意义。
  • 您不确定该函数是否被调用并且您认为它无关紧要?
  • 不,我 100% 确定该函数已被调用,我说作为 JavaFX onAction 方法的函数对于添加到问题中毫无意义。

标签: java hibernate spring-boot hsqldb


【解决方案1】:

我终于成功了,我不知道为什么,但我发布了我是如何做到的,以防它对某人有所帮助。

我的配置文件如下所示:

@Configuration
@EnableTransactionManagement
public class SpringConfig {
    @Bean
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.hsqldb.jdbcDriver");

        String ruta = System.getProperty("user.home") + "\\path\\to\\my\\db";
        String url = "jdbc:hsqldb:file:" + ruta;
        dataSource.setUrl(url);

        dataSource.setUsername("SA");
        dataSource.setPassword("");

        return dataSource;

    }

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("com.bcadaval.memefinder3020.modelo.beans");

        return sessionFactory;
    }



    @Bean
    public PlatformTransactionManager transactionManager() {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());
        return transactionManager;
    }


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
          LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
          em.setDataSource(dataSource());
          em.setPackagesToScan("com.bcadaval.memefinder3020.modelo.beans");     
          JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
          em.setJpaVendorAdapter(vendorAdapter);
          return em;
       }
}

我做了一些改动:

@Configuration
@EnableTransactionManagement
public class SpringConfig {
    @Bean
    public DataSource dataSource() { /* the same as before */}

    @Bean
    public EntityManager entityManager() {
        return entityManagerFactory().createEntityManager();
    }

    @Bean
    public EntityManagerFactory entityManagerFactory() {

          LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
          em.setDataSource(dataSource());
          em.setPackagesToScan("com.bcadaval.memefinder3020.modelo.beans");     
          JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
          em.setJpaVendorAdapter(vendorAdapter);
          em.setPersistenceUnitName("default");
          em.afterPropertiesSet();
          return em.getObject();
       }
}

As CodeSlave said,我需要flush(),然后我收到了那个异常,但是在删除LocalSessionFactoryBean bean 后,所有的都开始工作了。我什至尝试删除 EntityManagerEntityManagerFactory bean 并且它仍然工作正常,但我不知道我应该保留它们还是删除它们。我想对此给出更明确的答案,但我是 Hibernate 的新手,我想我是在无意识地配置一个 Hibernate/Spring 不会使用的事务管理器或类似的东西。

【讨论】:

    【解决方案2】:

    这是因为在您尝试从数据库中获取数据之前事务没有关闭。

    尝试使用saveAndFlush(); 而不是save();

    【讨论】:

    • 我试过了,但是抛出异常:Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress
    • 尝试使用@Transactional为您服务。
    • @Transactional注释服务是一种巨大的代码味道
    • 同样,我尝试了 @Transactional 注释(javaxspringframework),但仍然抛出异常,甚至在 Spring 配置文件中添加/删除 @EnableTransactionManagement。日志告诉它在异常发生后回滚,希望如此。
    • @Andronicus 不,它很好,这里是日志消息:rolling back - Preparing to rollback transaction via JDBC Connection.rollback() - Transaction rolled-back via JDBC Connection.rollback() - LogicalConnection#afterTransaction - Releasing JDBC resources - re-enabling auto-commit on JDBC Connection after completion of JDBC-based transaction
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    相关资源
    最近更新 更多