- 博客(9)
- 收藏
- 关注
原创 关于“Transaction rolled back because it has been marked as rollback-only”报错的记录
于是去仔细看spring事务注意事项,偶然看到spring事务的回滚,是不受try-catch限制,只要发生了异常,当前事务就会标记为回滚,再结合我看到的一条本地日志,发现是方法A调用的另一个service类的方法C产生了插入异常,只不过被方法C自己try-catch处理了,这样方法A在同一个事务下没有正常回滚,就会报错。debug代码,检查报错的位置,但是很多次都没有发现报错位置,又开始检查事务嵌套的问题,因为这段代码是有同一个service的两个事务方法互相调用,属于方法A调用方法B。
2024-10-24 17:18:52
194
2
原创 SpringBoot + Hikari + dynamic-datasource多数据源,服务启动报错
报错提示语1:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.cloud.autoconfigure.RefreshAutoConfiguration$JpaInvokerConfiguration'网上查找提示语2,发现是jdk版本的问题导致,将项目默认的jdk11换成jdk8,项目启动成功,多数据源可以正常使用了。
2024-04-25 09:17:38
1118
2
原创 java代码调用第三方接口,使用中文路径参数转码的问题
调第三方接口的问题,接口入参是路径参数,而且这个参数是中文,在使用postman调用时报错,而浏览器不会报错,后面意识到是路径参数中文的问题,将参数用浏览器转码后,可用postman正常调用。后面在使用java调用时,将参数转码,再拼到路径中,结果第三方服务报错,后面发现是路径不对,导致调用报错。postman调用接口时,路径参数不会转码,而浏览器和resttemplate在调用时,会自动转码。resttemplate调用路径参数接口,不需要自己转码中文参数,直接调用。
2024-04-25 08:47:46
244
1
转载 项目中使用Arrays.asList、ArrayList.subList需要注意的坑
方法可以在一些简单的场合使用,比如快速声明一个集合,判断某个值是否在允许的范围内:但声明后不要再调用add等方法修改集合,否则会报异常。ArrayList的subList方法,返回的是原集合的一个子集合(视图),非结构性修改任意一个集合的元素的值,都会彼此影响,结构性修改原集合时,会报异常,结构性修改子集合时,会影响原集合,所以使用时要注意,避免程序错误或者异常本文为搬运内容,并非原创!!!CTO:谁在项目中使用Arrays.asList、ArrayList.subList,就立马滚蛋!
2023-11-29 09:26:33
94
1
原创 判断一个BigDecimal类型的数据是否为整数
而bigDecimal.stripTrailingZeros().scale() == 0,是补充上面方法的缺陷,下面是此方法的解释。其中bigDecimal.scale() == 0,判断是否有小数位,注意这个方法不能判断像10.0000这样后面带0的整数。今天碰到一个需求,需要判断bigdecimal类型的数据再除以一个数后是否为整数,所以网上查了资料,找到了解决办法,如下。通过上面的两个方法,就可以判断一个bigdecimal类型的数据是否为整数了。
2023-11-14 10:52:57
3215
5
转载 java如何定时执行任务
开发过程中,经常会遇到需要定时执行一些操作的情况,比如定时从数据库中读取数据、定时更新数据库中的数据等。在Java中,我们可以通过创建一个类并使用@Component注解将其声明为Spring的组件,从而将其纳入到Spring管理的Bean中。我们可以在这个类中定义需要定时执行的方法。上述配置中,spring.task.scheduling.pool.size表示线程池的大小,即同时执行的定时任务的最大数量。上述代码中,我们使用JDBC连接数据库,并执行一个更新操作,将库存小于0的商品的库存设置为0。
2023-10-18 22:59:05
181
1
原创 @Slf4j注解和@log4j2注解的大概含义
需要在pom文件中引入lombok依赖,类上添加了这个注解,可以直接使用。@Slf4j注解就相当于以下这行代码。
2023-09-27 16:12:38
682
1
原创 java调用SQL server的存储过程没有返回结果集的解决方法
网上的解释是SQL server的新版的驱动包会关注到存储过程执行过程中返回的“影响多少行”这些信息,有这些信息存在,就会抛出空结果集异常;在sql语句前加“SET NOCOUNT ON ”,表示不返回计数(表示受 Transact-SQL 语句影响的行数)数据库是SQL server。但矛盾的是用数据库执行存储过程的时候明明是有返回查询结果的。比如我的sql语句原来是。在sql语句前面加上。
2023-09-12 16:09:23
1270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人