mybatis一个业务多次提交事务commit造成主键不顺序递增(触发器的原因)

在尝试使用MyBatis进行数据库操作时,遇到一个业务场景,期望地址、订单和订单项主键顺序递增,但实际上主键并未连续。问题源于MybatisUtil.commitForce()强制提交事务,导致主键跳号。调试发现,订单表中的orderId比预期值小1,若不手动加1,会出现外键约束错误。此问题可能与数据库触发器有关。
摘要由CSDN通过智能技术生成
package com.dangdang.service;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Set;
import java.util.UUID;

import org.apache.ibatis.session.SqlSession;

import com.dangdang.dao.AddressDAO;
import com.dangdang.dao.OrderDAO;
import com.dangdang.dao.OrderDetallDAO;
import com.dangdang.entity.BuyAddress;
import com.dangdang.entity.Order;
import com.dangdang.entity.OrderDetall;
import com.dangdang.entity.User;
import com.dangdang.util.MyBatisUtil;
import com.dangdang.vo.Cart;
import com.dangdang.vo.OrderItem;

public class OrderServiceImpl implements OrderService{
	
	//收货地址入库、订单入库、订单项表入库
	@Override
	public void orderOrder(BuyAddress address, User user, Cart cart) {
		try {
			//收货地址入库
			address.setuId(user.getId());
			address.setAddrstatus(0);
			address.setIsDefault(0);
			//把User对象存放在Buyaddress
			address.setUser(user);
			
			AddressDAO ad = (AddressDAO) MyBat
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值