java总结

  1. pom子包和父包不在一个文件夹
    错误提示:Non-resolvable parent POM for com.ruoyi.kserver:kweb:3.8.7: The following
    解决办法只需要在 parent标签内添加 relativePath 指定父类pom.xml所在路径即可
  2. mybatis-plus 报 'Invalid bound statement (not found)'
    1. 检查 @MapperScan 路径。范围不能过大 建议最好是 mapper包目录
  3. springboot手动开启事务
    //第一种
    @Service
    public class MyService {
    
    	@Autowired
    	private TransactionTemplate transactionTemplate;
    
    	@Autowired
    	private SomeRepository someRepository;
    
    	public void performBusinessLogic() {
    		transactionTemplate.execute(new TransactionCallbackWithoutResult() {
    			@Override
    			protected void doInTransactionWithoutResult(TransactionStatus status) {
    				try {
    					// 业务逻辑
    					someRepository.save(new Entity("Data1"));
    					someRepository.save(new Entity("Data2"));
    
    					// 如果发生异常,手动触发回滚
    					if (someCondition) {
    						throw new RuntimeException("Something went wrong!");
    					}
    				} catch (Exception e) {
    					// 触发回滚
    					status.setRollbackOnly();
    					throw e; // 重新抛出异常
    				}
    			}
    		});
    	}
    }
    
    //第二种
    @Autowired
    	private PlatformTransactionManager transactionManager;
    
    	public void updateOrders(List<Integer> orderIds) {
    		DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    		def.setName("updateOrdersTransaction");
    		def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    
    		TransactionStatus status = transactionManager.getTransaction(def);
    
    		try {
    			// 执行更新操作
    			// 这里假设你有一个 KOrderMapper
    			KOrderMapper kOrderMapper = ...; // 从你的配置中获取 KOrderMapper
    			kOrderMapper.update(null, vQuery);
    
    			// 提交事务
    			transactionManager.commit(status);
    		} catch (Exception e) {
    			// 回滚事务
    			transactionManager.rollback(status);
    			throw e;
    		}
    	}
    	
    	
    

知识点

  1. classpath*: 扫描跨模块的文件, classpath: 会扫描当个模块文件
posted @ 2024-03-27 21:19  狂客  阅读(11)  评论(0)    收藏  举报