@Controller
public class COACategoriesController {
protected static Logger log = Logger.getLogger(COACategoriesController.class);
@Resource(name="COACategoriesService")
private COACategoriesService obj_coacs;
@Resource(name="COAMaintenanceService")
private COAMaintenanceService obj_coams;
@RequestMapping(value = "/addCoaCategory", method = RequestMethod.POST)
public String addCoaCategory(@RequestParam("conCatName") String coaCatName, Model model) {
Date sysdate = null;
String Message="";
try{
sysdate = new Date();
COACategoriesModel model1 = new COACategoriesModel( coaCatName, 1, "", sysdate , 0);
COAMaintenanceModel account = new COAMaintenanceModel();
account.setDiscription("Test Description");
account.setCategoryId(model1);
Message="Fail-First";
obj_coacs.AddCOACategories(model1);
Message="Fail-Second";
obj_coams.AddCOAMaintenance (account);
Message="Add Successfully";
}catch(Exception ex){
log.error("Exception.."+ex);
model.addAttribute("success", Message);
}
return "fin/category";
}
}
首先,需要将属性connection.autoCommit
设置为false
,以启用事务级提交。
这可以通过添加
<property name="connection.autocommit">false</property>
在hibernate.cfg.xml
中
Session s = null;
Transaction t = null;
try {
s = getSessionFactory().openSession();
t = s.beginTransaction();
// code to persist the object
}
catch(HibernateException he) {
if(t != null) {
t.rollback();
}
}
finally {
if(s != null) {
s.close();
}
}
问题内容: 我们在服务器迁移方面遇到问题。我们有一个拥有大量事务的应用程序,它在一台数据库服务器上运行良好。但是,当将同一数据库传输到另一台服务器时。我们面临以下错误。 同一数据库将所有数据复制到另一台服务器。如果我们将连接字符串更改为旧服务器,则它可以正常工作。 有人可以建议吗? 问题答案: 您似乎遇到的问题是,一个数据库中的记录可以接受,而另一个数据库中的记录却可以接受。建议您查看两个数据库结
我有一个带MySQL的Spring Boot应用程序JPA。在我的控制器中,当我发布一个实体时,我可以调用存储库。保存,然后返回“创建/更新”对象。 但是,当我查看数据库时,我看到对象没有更新。 这是我的application.yml: 你知道我还要做什么吗? 这是我的控制器: 和MyEntityService:
我在A处有个方法 服务B中的另一种方法 我的问题是,例如,当“repository.insertRandomValue()”抛出ConstraintViolationException时,即使它在catch()中被捕获,线程也以 我尝试将传播设置为REQUIRES\u NEW,并尝试将transaction manager和GlobalRollbackOnParticipationFailure设
我正在使用JPA2Hibernate实现和Spring MVC来管理事务 目前,我们有一个事务是一个单一的方法,类似于: 它是从JSF页面调用的方法。 save方法继承自通用DAO,它将许多具有级联oneToMany关系的实体保存到数据库中,但是它必须在数据库中执行大约1000s的insert语句,所以它需要很长的时间。 显然,我不能在方法中抛出异常,它只是来自源代码的一个调用。JPA Persi
我的Spring boot和Hibernate项目中有Javers实现。但是,有时javerscommit失败,这也会回滚我的业务数据库事务,因此API调用失败。 是否有可能实现Javers异步提交,这样即使Javers提交有一些问题,我的业务事务也不会生效,因此,API调用将成功? 非常感谢。
我正在使用方法级别的@KafkaHandler(类级别的@KafkaListener)消费Kafka事件。 我见过很多例子,其中有一个“acknowledge”参数可用,在这个参数上可以调用“acknowledge()”方法来提交事件的消耗,但是,当我将它作为参数包含到我的方法中时,我无法填充acknowledge对象。使用KafkaHandler时如何手动提交?有可能吗? 代码示例: 使用Spr