最近工作中遇到的几个问题

方法上没加 @Transactional(readOnly=false, rollbackFor = BusinessException.class)导致的错误

Connection is read-only. Queries leading to data modification are not allowed

这个应该是我们的项目在事务上做了某种设置导致的错误。出现此错误加上上述事务注解即可

2)前台用表单的动作是上传图片,但是此时需要做异步文件上传

使用如下方式来做

	        var fd = new FormData(document.querySelector("form"));
	        console.log(fd);
	        debugger
	            $formTable.async({
	                url: system.contextPath+"/system/organ/save.do",
	                type: "POST",
	                data: fd,
	                cache: false,
	                contentType: false,
	                processData: false,
	                success: function (data) {
	                    if (data.status == 200) {
	                        $.messager.notifySuccess("操作成功", data.results || data.message)
	                        window.location = system.contextPath + '/system/organ'
	                    } else {
	                        $.messager.notifyError("操作失败", data.results || data.message)
	                    }
	                },
	                complete: function (event, xhr, options) {
	                    $formTable.bootstrapValidator('disableSubmitButtons', false);
	                }
	            });

注意 contentType: false,
processData: false,
这两个参数是必须需要的。否则会出现错误Uncaught TypeError Illegal invocation

3)java8操作Stream时,使用filter时,多条件的情况

stream().filter(SystemOrganDto->SystemOrganDto.getDomainUrl()!=null&&SystemOrganDto.getDomainUrl().contains(tempContextUrl))

可以使用&&或者||等条件运算符来做联合判断

4)Thymeleaf的条件判断

			       


使用th:if和th:unless作为条件判断的

18. 将一段配置代码放在SpringBoot项目启动后执行的代码,一般写在config类中使用 @EventListener(ApplicationReadyEvent.class)来实现

@Configuration
@Slf4j
public class TaskConfig {

    @EventListener(ApplicationReadyEvent.class)
    public void scheduleAfterStartup() {
    	}
    
}

SpringBoot中使用@Async的方法不应该有返回值。或者使用Futuretask来获取返回值

你可能感兴趣的:(java错误集)