網站首頁 編程語言 正文
? ? 為了給項目其他人提供模塊的swagger服務,在本地window里安裝了ubuntu子系統,將模塊服務運行在Tomcat中,奇怪的是,每天晚上下班時啟動服務,早上上班來就會看到日志catalina.out文件都會暴增到10G左右,今天剛好有空,來查一查這個問題。。。?
org.springframework.dao.DataIntegrityViolationException:
### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1' for column 'created' at row 1
### The error may involve com.xxx.xxx.repository.xxx.deleteByPrimaryKey-Inline
### The error occurred while setting parameters
### SQL: DELETE FROM xxxx WHERE id = ? AND cid = ? AND xxx_id = ? AND xxx_num = ? AND created = ? AND xxx = ?
### Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1' for column 'created' at row 1
; Data truncation: Incorrect datetime value: '1' for column 'created' at row 1; nested exception is com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1' for column 'created' at row 1
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:104)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy45.delete(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.delete(SqlSessionTemplate.java:310)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:68)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy96.deleteByPrimaryKey(Unknown Source)
? ? 首先日志中出現大量DELETE FROM 的SQL語句,但是參數卻有點怪怪的。。。
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@3cd9a44f] will not be managed by Spring
==> Preparing: DELETE FROM xxx WHERE id = ? AND cid = ? AND xxx_id = ? AND xxx_num = ? AND created = ? AND xxx = ?
==> Parameters: 1(Long), 1(Long), 1(Long), 1(Long), 1(Long), 1(Long)
? ? 對應的代碼部分是:?
xxxxMapper.deleteByPrimaryKey(v.getId());
? ? 這個是Mybatis自帶的根據主鍵ID刪除表數據的方法啊,怎么會出現問題???
package tk.mybatis.mapper.common.base.delete;
import org.apache.ibatis.annotations.DeleteProvider;
import tk.mybatis.mapper.annotation.RegisterMapper;
import tk.mybatis.mapper.provider.base.BaseDeleteProvider;
/**
* 通用Mapper接口,刪除
*
* @param 不能為空
* @author liuzh
*/
@RegisterMapper
public interface DeleteByPrimaryKeyMapper {
/**
* 根據主鍵字段進行刪除,方法參數必須包含完整的主鍵屬性
*
* @param key
* @return
*/
@DeleteProvider(type = BaseDeleteProvider.class, method = "dynamicSQL")
int deleteByPrimaryKey(Object key);
}
? ? 經過排查,發現是因為在實體類的id參數,沒有配置主鍵ID的注解,導致mybatis找不到這條刪除語句的主鍵,所以才會出現這個問題。
? ? 需,加上@Id注解,表明該id是主鍵ID,才能保證刪除邏輯執行正常。
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
? ? ps:當然,也可以直接手寫SQL語句,進行刪除(不推薦)
@Delete("DELETE FROM xxxx WHERE id=#{id}")
void deleteInfoById(@Param("id") Long id);
?
原文鏈接:https://zhangdaopin.blog.csdn.net/article/details/118149475
相關推薦
- 2023-02-27 基于C#實現一個溫濕度監測小工具_C#教程
- 2022-04-24 C++vector的用法你都知道嘛_C 語言
- 2024-02-25 Navicat提示Access violation at address **** in modul
- 2022-02-01 使用 file_get_contents 獲取網站信息報錯failed to open stream
- 2022-03-16 C++中的Lambda函數詳解_C 語言
- 2023-07-08 SparkMD5獲取不同圖片的md5顯示相同,解決辦法
- 2023-02-10 docker安裝nginx容器的方法_docker
- 2022-09-10 Python?turtle庫(繪制螺旋正方形)_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支