gpt4 book ai didi

java - Hibernate INSERT 未出现在数据库中 "JDBC transaction marked for rollback-only"

转载 作者:行者123 更新时间:2023-12-01 16:55:00 27 4
gpt4 key购买 nike

我正在开发一个项目的数据库部分,该项目在 Java SE 中使用 DeltaSpike 和 Hibernate。

所有SELECT 语句都有效,但数据库中没有出现INSERT 语句。没有警告、错误或异常。

我浏览了 Hibernate 日志并发现了以下内容:

[DEBUG] [05/05 00:52:16] [org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl] JDBC transaction marked for rollback-only

我尝试添加 javax.transaction 中的 @Transactional 注释和 org.apache.deltaspike.jpa.api.transaction ,以及更改 persistence.xml 中的 autocommit 设置。

如何才能停止尝试回滚事务?

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
<persistence-unit name="primary">
<properties>
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.hbm2ddl.auto" value="validate"/>
<!-- Omitted for Brevity -->
</properties>
</persistence-unit>
</persistence>

ExampleRepository.java

@Repository(forEntity = ExampleData.class)
public interface ExampleRepository extends EntityRepository<ExampleData, Long> {

}

ExampleListener.java

@Singleton
public class ExampleListener extends ExampleAdapter {

private final ExampleRepository emoteRepo;

@Inject
public ExampleListener(ExampleRepository exampleRepo) {
this.exampleRepo = Objects.requireNonNull(exampleRepo);
}

@Override
public void onExample(ExampleEvent event) {
// Omitted for Brevity

ExampleData exampleData = new ExampleData(exampleId, parentId);
exampleRepo.save(exampleData);
}
}
}

最佳答案

问题是在项目中,@Entity@Table使用不当。

该项目具有以下内容,但生成的查询称为 ExampleTable,而不是预期的 example

@Entity(name = "example")
@Table
public ExampleTable {

}

解决方案也是更改它:

@Entity
@Table(name = "example")
public ExampleTable {

}

关于java - Hibernate INSERT 未出现在数据库中 "JDBC transaction marked for rollback-only",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61604201/

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