【发布时间】:2021-10-31 22:54:05
【问题描述】:
我有这个 Java 方法
@Override
public void callDelete_old_orders
(int order_id) throws Exception {
SqlSession sqlSession = getSqlSession();
OrderMapper mapper = sqlSession.getMapper(OrderMapper.class);
mapper.callDelete_old_orders(order_id);
}
MyBatis 删除注解接口
public interface OrderMapper {
@Delete ("{CALL delete_old_orders(#{ order_id, mode = IN, jdbcType = INTEGER})} ")
@Options(statementType = StatementType.CALLABLE)
public void callDelete_old_orders(int order_id);
}
和程序
CREATE DEFINER=`myself`@`localhost` PROCEDURE `pizza_bro`.`delete_old_orders`(
IN in_order_id INT)
begin
delete from pizza_order where order_id <= in_order_id;
end
什么可以防止从 MariaDB 表中删除记录?
【问题讨论】:
-
如果直接在
@Delete中写入DELETE 语句(并删除@Options)会怎样? -
奇怪的是,@Delete("delete from Pizza_order where order_id
-
假设它没有抛出任何异常,这可能意味着 1) 没有匹配 WHERE 条件的行或 2) 事务由于某种原因被回滚。
标签: database annotations mybatis commit procedure