diff --git a/logs/web_project.log b/logs/web_project.log index 2766a46..1222f47 100644 --- a/logs/web_project.log +++ b/logs/web_project.log @@ -2963,3 +2963,5481 @@ This generated password is for development use only. Your security configuration 2025-10-22 13:27:28 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] 2025-10-22 13:27:28 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [28] 2025-10-22 13:27:28 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:30:43 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:30:43 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:30:43 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:36:05 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:36:05 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:36:05 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:36:05 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 13:36:05 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 13:36:05 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 13:36:05 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 13:36:05 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 13:36:05 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 13:36:05 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 13:36:05 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 13:36:05 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 13:36:05 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 13:36:05 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 13:36:05 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 13:43:54 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:43:54 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:43:54 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:43:54 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [29] +2025-10-22 13:43:54 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:44:16 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:44:16 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:44:16 [http-nio-8080-exec-9] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:44:21 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:44:21 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:44:21 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:44:21 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [30] +2025-10-22 13:44:21 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:50:15 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:50:15 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:50:15 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:50:15 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [31] +2025-10-22 13:50:15 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:51:50 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:51:50 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:51:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:52:11 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:52:11 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:52:11 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:52:11 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [32] +2025-10-22 13:52:11 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:53:09 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:09 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:53:09 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:09 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [33] +2025-10-22 13:53:09 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:53:24 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:24 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:53:24 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:24 [http-nio-8080-exec-9] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [34] +2025-10-22 13:53:24 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:53:45 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:45 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:53:45 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:45 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [35] +2025-10-22 13:53:45 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:53:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:50 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:53:50 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:53:50 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [36] +2025-10-22 13:53:50 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:54:38 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:54:38 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:54:38 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:54:38 [http-nio-8080-exec-9] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [37] +2025-10-22 13:54:38 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:55:51 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:55:51 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:55:51 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:55:51 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [38] +2025-10-22 13:55:51 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 13:56:24 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:56:24 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 13:56:24 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:56:24 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [39] +2025-10-22 13:56:24 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:00:50 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:00:50 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:00:50 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:00:50 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [40] +2025-10-22 14:00:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:01:08 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:01:08 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:01:08 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [41] +2025-10-22 14:01:27 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:01:27 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [42] +2025-10-22 14:01:27 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:02:19 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:02:19 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:02:19 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:02:19 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 14:02:19 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 14:02:19 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 14:02:19 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:02:19 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:02:19 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:02:19 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 14:02:19 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 14:02:19 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 14:02:19 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 14:02:19 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 14:02:19 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 14:02:30 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:02:30 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:02:30 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:02:30 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:02:30 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:02:30 [http-nio-8080-exec-1] ERROR c.q.m.service.ArticleService - 增加文章浏览量失败: Cannot invoke "java.lang.Integer.intValue()" because the return value of "com.qf.myafterprojecy.pojo.Article.getViewCount()" is null +2025-10-22 14:02:33 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:02:33 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:02:33 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:02:33 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 14:02:33 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 14:02:33 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 14:02:33 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:02:33 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:02:33 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:02:33 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 14:02:33 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 14:02:33 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 14:02:33 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 14:02:33 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 14:02:33 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 14:02:59 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:02:59 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:02:59 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:02:59 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [43] +2025-10-22 14:02:59 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:03:33 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:03:33 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:03:33 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:44 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:44 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:44 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:08:44 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [44] +2025-10-22 14:08:44 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:08:46 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:08:46 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:08:49 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:08:49 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:08:49 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:49 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 14:08:49 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 14:08:49 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 14:08:49 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:08:49 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:08:49 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:08:49 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 14:08:49 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 14:08:49 [http-nio-8080-exec-9] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 14:08:49 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 14:08:49 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 14:08:49 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 14:08:50 [http-nio-8080-exec-8] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:50 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:08:50 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:08:50 [http-nio-8080-exec-10] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [0] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是第一篇测试文章的内容] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test-img-1.jpg] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [INTEGER] - [1] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - [测试文章1] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [TIMESTAMP] - [2025-10-10T16:52:40.934615] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [9] as [INTEGER] - [45] +2025-10-22 14:08:50 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [10] as [INTEGER] - [1] +2025-10-22 14:08:54 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:08:54 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:08:57 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:08:57 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:08:57 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:08:57 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 14:08:57 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 14:08:57 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 14:08:57 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:08:57 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:08:57 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:08:57 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 14:08:57 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 14:08:57 [http-nio-8080-exec-9] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 14:08:57 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 14:08:57 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 14:08:57 [http-nio-8080-exec-7] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 14:09:00 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:09:00 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:09:14 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收创建消息的请求: dwa +2025-10-22 14:09:14 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 保存消息: dwa +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [null] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [1] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:09:14 CST 2025] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [aabelavasdev@outlook.com] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [dwa] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:09:14 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:09:14 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 消息保存成功: 233 +2025-10-22 14:09:14 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:09:14 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:25 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:25 [Thread-109] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:25 [Thread-109] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 14:10:25 [Thread-109] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:25 [Thread-109] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:25 [Thread-109] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:25 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:26 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:26 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:26 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:26 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 174 ms +2025-10-22 14:10:26 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:26 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:26 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:26 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:26 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:26 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:26 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: df645803-2ced-42c5-b7ea-09f08427bcb5 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:26 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1c1a124e, org.springframework.security.web.context.SecurityContextPersistenceFilter@5d350df2, org.springframework.security.web.header.HeaderWriterFilter@4e8ea19a, org.springframework.security.web.authentication.logout.LogoutFilter@a21e9b4, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1ce1853b, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@546f5c6e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1f72d3df, org.springframework.security.web.access.ExceptionTranslationFilter@6d64a445, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@612dbe83] +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.413 seconds (JVM running for 11558.048) +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:26 CST 2025] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 234 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=234 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 234 +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [234] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [234] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [234] +2025-10-22 14:10:26 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [234] +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 234 +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID234: 成功=true +2025-10-22 14:10:26 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:26 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:10:33 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:33 [Thread-113] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:33 [Thread-113] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:33 [Thread-113] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:33 [Thread-113] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:33 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:33 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:33 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:33 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:34 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 10 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:34 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:34 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:34 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:34 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 150 ms +2025-10-22 14:10:34 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:34 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:34 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:34 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:34 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:34 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:34 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 6d075288-30dc-4c84-aaee-746e4f50dfb1 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:34 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5b2f97f3, org.springframework.security.web.context.SecurityContextPersistenceFilter@25466c50, org.springframework.security.web.header.HeaderWriterFilter@4750f89, org.springframework.security.web.authentication.logout.LogoutFilter@55567bd6, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6c5da3bc, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6f41f820, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@57d23587, org.springframework.security.web.access.ExceptionTranslationFilter@2a55294e, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3443f882] +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.344 seconds (JVM running for 11565.928) +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:34 CST 2025] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 235 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=235 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 235 +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [235] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [235] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [235] +2025-10-22 14:10:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [235] +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 235 +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID235: 成功=true +2025-10-22 14:10:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:34 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:10:36 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:36 [Thread-117] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:36 [Thread-117] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:36 [Thread-117] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:36 [Thread-117] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:36 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:36 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:36 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:36 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:36 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:36 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:36 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:36 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:36 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:36 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:36 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 158 ms +2025-10-22 14:10:36 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:36 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:36 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:36 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:36 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:36 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:37 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: c66fef79-4cf5-400c-ac0b-bea27f581bee + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:37 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6c303b1e, org.springframework.security.web.context.SecurityContextPersistenceFilter@25fa5b2a, org.springframework.security.web.header.HeaderWriterFilter@7803205f, org.springframework.security.web.authentication.logout.LogoutFilter@399cee3b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@10f30fbb, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2f2803a1, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@366d4195, org.springframework.security.web.access.ExceptionTranslationFilter@27b30afe, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@84d33e3] +2025-10-22 14:10:37 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:37 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:37 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.401 seconds (JVM running for 11568.812) +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:37 CST 2025] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 236 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=236 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 236 +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [236] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [236] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [236] +2025-10-22 14:10:37 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [236] +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 236 +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID236: 成功=true +2025-10-22 14:10:37 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:37 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:10:52 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:52 [Thread-121] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:52 [Thread-121] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:52 [Thread-121] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:52 [Thread-121] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:52 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:52 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:52 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:52 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:52 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:52 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:52 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:52 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:52 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:52 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:52 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 142 ms +2025-10-22 14:10:52 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:52 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:52 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:52 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:52 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:52 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:53 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 87072427-9af7-4076-8627-af41e10ce8fc + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:53 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4d41524c, org.springframework.security.web.context.SecurityContextPersistenceFilter@849dbd6, org.springframework.security.web.header.HeaderWriterFilter@1486bb8d, org.springframework.security.web.authentication.logout.LogoutFilter@3717db88, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@369bca7e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@50bdaa44, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5e4c703, org.springframework.security.web.access.ExceptionTranslationFilter@5036cedf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2b695640] +2025-10-22 14:10:53 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:53 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:53 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.347 seconds (JVM running for 11584.747) +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:53 CST 2025] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 237 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=237 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 237 +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [237] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [237] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [237] +2025-10-22 14:10:53 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [237] +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 237 +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID237: 成功=true +2025-10-22 14:10:53 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:53 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:10:56 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:56 [Thread-125] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:56 [Thread-125] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:56 [Thread-125] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:56 [Thread-125] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:56 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:56 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:56 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:56 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:56 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:56 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:56 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:56 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:56 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 177 ms +2025-10-22 14:10:56 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:56 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:56 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:56 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:56 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:56 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:56 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 6225f519-cc4d-4bb2-91fb-2a1187de3b5e + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:56 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2dda85d9, org.springframework.security.web.context.SecurityContextPersistenceFilter@669cf965, org.springframework.security.web.header.HeaderWriterFilter@78fbf6a9, org.springframework.security.web.authentication.logout.LogoutFilter@54e41981, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@30d990fc, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@725b6bcf, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7d129eb1, org.springframework.security.web.access.ExceptionTranslationFilter@2e80505, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@34e91c60] +2025-10-22 14:10:56 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:56 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:56 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.402 seconds (JVM running for 11588.641) +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:56 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:56 CST 2025] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:56 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 238 +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=238 +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 238 +2025-10-22 14:10:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [238] +2025-10-22 14:10:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [238] +2025-10-22 14:10:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [238] +2025-10-22 14:10:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [238] +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 238 +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID238: 成功=true +2025-10-22 14:10:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:57 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:10:58 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:10:58 [Thread-129] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:10:58 [Thread-129] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:58 [Thread-129] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:10:58 [Thread-129] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:10:58 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:10:58 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:10:58 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 14:10:58 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:10:58 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:10:58 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:10:58 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 162 ms +2025-10-22 14:10:58 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:10:58 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:10:58 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:10:58 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:10:58 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:10:58 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:10:58 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 0b17f159-2978-49e7-a4cc-140814c0ebf1 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:10:58 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@9de18b9, org.springframework.security.web.context.SecurityContextPersistenceFilter@3ba5547f, org.springframework.security.web.header.HeaderWriterFilter@1c12299f, org.springframework.security.web.authentication.logout.LogoutFilter@4fd2e84a, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@41e768e7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@5316dc6d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1be71c53, org.springframework.security.web.access.ExceptionTranslationFilter@725c17e9, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@7c2b3e02] +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.385 seconds (JVM running for 11590.497) +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:10:58 CST 2025] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 239 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=239 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 239 +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [239] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [239] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [239] +2025-10-22 14:10:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [239] +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 239 +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID239: 成功=true +2025-10-22 14:10:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:10:58 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:11:09 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 3 class path changes (0 additions, 0 deletions, 3 modifications) +2025-10-22 14:11:09 [Thread-133] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:11:09 [Thread-133] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:09 [Thread-133] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:11:09 [Thread-133] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:11:09 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:11:09 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:11:09 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:11:09 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:11:09 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:11:09 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:11:09 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 160 ms +2025-10-22 14:11:09 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:11:09 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:11:09 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:11:09 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:11:09 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:11:09 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:09 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 29672d57-8970-46a7-b44c-fba418dec4fe + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:11:09 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@64b45e8c, org.springframework.security.web.context.SecurityContextPersistenceFilter@3398c855, org.springframework.security.web.header.HeaderWriterFilter@3cc5e14, org.springframework.security.web.authentication.logout.LogoutFilter@43af5c0b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2b951a6a, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@575d38ef, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@6e27b19c, org.springframework.security.web.access.ExceptionTranslationFilter@12fb364, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@768e40ab] +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.365 seconds (JVM running for 11601.411) +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:11:09 CST 2025] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 240 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=240 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 240 +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [240] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [240] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [240] +2025-10-22 14:11:09 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [240] +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 240 +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID240: 成功=true +2025-10-22 14:11:09 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:11:09 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:11:19 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:11:19 [Thread-137] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:11:19 [Thread-137] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:19 [Thread-137] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:11:19 [Thread-137] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:11:19 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:11:19 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:11:19 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 4 JPA repository interfaces. +2025-10-22 14:11:19 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:11:19 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:11:19 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:11:19 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 198 ms +2025-10-22 14:11:19 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:11:19 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:11:19 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:11:19 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:11:19 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:11:19 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:19 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 8a476e40-6a5d-4c54-b11e-f5cbe9663125 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:11:19 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5d52cb38, org.springframework.security.web.context.SecurityContextPersistenceFilter@17d7a806, org.springframework.security.web.header.HeaderWriterFilter@7f68e2bb, org.springframework.security.web.authentication.logout.LogoutFilter@7f575270, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5728edd6, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6d2f1d67, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@22a87793, org.springframework.security.web.access.ExceptionTranslationFilter@3441cf83, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@3806b3e7] +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.444 seconds (JVM running for 11611.412) +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:11:19 CST 2025] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 241 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=241 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 241 +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [241] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [241] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [241] +2025-10-22 14:11:19 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [241] +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 241 +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID241: 成功=true +2025-10-22 14:11:19 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:11:19 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:11:21 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:11:21 [Thread-141] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:11:21 [Thread-141] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:21 [Thread-141] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:11:21 [Thread-141] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:11:21 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:11:21 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:11:21 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:11:21 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:11:21 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:11:21 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:11:21 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:11:21 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:11:21 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:11:21 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:11:21 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 159 ms +2025-10-22 14:11:21 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:11:21 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:11:21 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:11:21 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:11:21 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:11:21 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:11:21 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 5c4a6f4f-a77e-402a-9411-b694f6402e80 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:11:21 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@79ed0597, org.springframework.security.web.context.SecurityContextPersistenceFilter@59302c5b, org.springframework.security.web.header.HeaderWriterFilter@1e77bb97, org.springframework.security.web.authentication.logout.LogoutFilter@6f16b244, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@2f2b98ce, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1494a81e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@3dee50f0, org.springframework.security.web.access.ExceptionTranslationFilter@5f0c8114, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@20e877b0] +2025-10-22 14:11:21 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:11:22 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:11:22 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.392 seconds (JVM running for 11613.704) +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:11:22 CST 2025] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 242 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=242 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 242 +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [242] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [242] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [242] +2025-10-22 14:11:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [242] +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 242 +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID242: 成功=true +2025-10-22 14:11:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:11:22 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:13:06 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 14:13:06 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 14:13:06 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-22 14:13:06 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:13:06 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:13:06 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:13:06 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:14:11 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:14:11 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:15:49 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:15:49 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:16:36 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:16:36 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:19:34 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:19:34 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:19:34 [http-nio-8080-exec-9] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy484.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy486.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 14:19:37 [http-nio-8080-exec-10] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:19:37 [http-nio-8080-exec-10] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:19:40 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:19:40 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:19:40 [http-nio-8080-exec-1] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy484.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy486.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 14:21:29 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:21:29 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:21:29 [http-nio-8080-exec-3] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy484.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy486.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 14:21:39 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:21:39 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:21:45 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:21:45 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:21:45 [http-nio-8080-exec-2] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy484.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy486.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 14:22:22 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:22:22 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:22:28 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:22:28 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:22:28 [http-nio-8080-exec-8] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy484.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy40/jdk.proxy40.$Proxy486.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.id = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 14:24:21 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:24:21 [Thread-145] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:24:21 [Thread-145] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 14:24:21 [Thread-145] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:21 [Thread-145] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:24:21 [Thread-145] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:24:21 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:24:21 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:24:21 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 4 JPA repository interfaces. +2025-10-22 14:24:21 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:24:21 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:24:21 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:24:21 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 258 ms +2025-10-22 14:24:21 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:24:21 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:24:21 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:24:21 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:24:21 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:24:21 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:21 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 9cd41d16-3e8d-4b13-aecb-89ce2ef43ca2 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:24:21 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1f85450b, org.springframework.security.web.context.SecurityContextPersistenceFilter@26388f39, org.springframework.security.web.header.HeaderWriterFilter@19333496, org.springframework.security.web.authentication.logout.LogoutFilter@e0526ed, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@56abfaf5, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6cb12383, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@3965efd8, org.springframework.security.web.access.ExceptionTranslationFilter@6d3ae340, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@183e23cf] +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.493 seconds (JVM running for 12393.353) +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:24:21 CST 2025] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 243 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=243 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 243 +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [243] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [243] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [243] +2025-10-22 14:24:21 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [243] +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 243 +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID243: 成功=true +2025-10-22 14:24:21 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:24:21 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:24:23 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:24:23 [Thread-149] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:24:23 [Thread-149] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:23 [Thread-149] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:24:23 [Thread-149] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:24:23 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:24:23 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:24:23 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 4 JPA repository interfaces. +2025-10-22 14:24:23 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:24:23 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:24:23 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:24:23 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 188 ms +2025-10-22 14:24:23 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:24:23 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:24:23 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:24:23 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:24:23 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:24:23 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:23 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 4f078add-dedd-45f5-9e6c-76c0be2ca60f + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:24:23 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7556fb49, org.springframework.security.web.context.SecurityContextPersistenceFilter@bb2892d, org.springframework.security.web.header.HeaderWriterFilter@68ec5c68, org.springframework.security.web.authentication.logout.LogoutFilter@3c77d3c5, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@79172940, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2996cb2d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@40c08d89, org.springframework.security.web.access.ExceptionTranslationFilter@45f2a473, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@5c14bb59] +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.395 seconds (JVM running for 12395.221) +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:24:23 CST 2025] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 244 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=244 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 244 +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [244] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [244] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [244] +2025-10-22 14:24:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [244] +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 244 +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID244: 成功=true +2025-10-22 14:24:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:24:23 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:24:24 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:24:24 [Thread-153] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:24:24 [Thread-153] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:24 [Thread-153] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:24:24 [Thread-153] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:24:25 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:24:25 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:24:25 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:24:25 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:24:25 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:24:25 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:24:25 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 168 ms +2025-10-22 14:24:25 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:24:25 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:24:25 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:24:25 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:24:25 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:24:25 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:25 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: f7197f6e-49c3-4fc5-8464-dd4a7a31af04 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:24:25 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@7a6c69b3, org.springframework.security.web.context.SecurityContextPersistenceFilter@70d4fda2, org.springframework.security.web.header.HeaderWriterFilter@6570760, org.springframework.security.web.authentication.logout.LogoutFilter@1a8a23b6, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@48c9343e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@73369b54, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@647a4658, org.springframework.security.web.access.ExceptionTranslationFilter@18147a01, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@7de80177] +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.378 seconds (JVM running for 12397.073) +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:24:25 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:24:25 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:24:25 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:24:25 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:24:25 [restartedMain] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2025-10-22 14:24:25 [restartedMain] ERROR o.s.boot.SpringApplication - Application run failed +java.lang.IllegalStateException: Failed to execute CommandLineRunner + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.13.jar:2.6.13] + at com.qf.myafterprojecy.MyAfterProjecyApplication.main(MyAfterProjecyApplication.java:10) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.6.13.jar:2.6.13] +Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy43/jdk.proxy43.$Proxy514.countByArticleId(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.testQueryMethods(MessageDataChecker.java:105) ~[classes/:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.run(MessageDataChecker.java:47) ~[classes/:na] + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-2.6.13.jar:2.6.13] + ... 8 common frames omitted +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 18 common frames omitted +2025-10-22 14:24:25 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:24:25 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:24:25 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:32:11 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:32:11 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:32:11 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 10 ms. Found 4 JPA repository interfaces. +2025-10-22 14:32:11 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:32:11 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:32:11 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:32:11 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 148 ms +2025-10-22 14:32:11 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:32:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:32:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:32:11 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:32:11 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:32:11 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:11 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 344cd4e6-13c9-41eb-b5fa-35d6ae2c07a0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:32:11 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@8a42337, org.springframework.security.web.context.SecurityContextPersistenceFilter@1b331b6b, org.springframework.security.web.header.HeaderWriterFilter@6bdc1289, org.springframework.security.web.authentication.logout.LogoutFilter@49294e83, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4cb78c32, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2cdf2c76, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@51493442, org.springframework.security.web.access.ExceptionTranslationFilter@6c28327a, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@4d0294c2] +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.373 seconds (JVM running for 12863.45) +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:32:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:32:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:32:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:32:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:32:11 [restartedMain] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2025-10-22 14:32:11 [restartedMain] ERROR o.s.boot.SpringApplication - Application run failed +java.lang.IllegalStateException: Failed to execute CommandLineRunner + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.13.jar:2.6.13] + at com.qf.myafterprojecy.MyAfterProjecyApplication.main(MyAfterProjecyApplication.java:10) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.6.13.jar:2.6.13] +Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy44/jdk.proxy44.$Proxy524.countByArticleId(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.testQueryMethods(MessageDataChecker.java:105) ~[classes/:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.run(MessageDataChecker.java:47) ~[classes/:na] + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-2.6.13.jar:2.6.13] + ... 8 common frames omitted +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 18 common frames omitted +2025-10-22 14:32:11 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:32:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 13744 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:32:13 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:32:13 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:32:13 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:32:13 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:32:13 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:32:13 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:32:13 [restartedMain] INFO o.a.c.c.C.[Tomcat-2].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 158 ms +2025-10-22 14:32:13 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:32:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:32:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:32:13 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:32:13 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:32:13 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:13 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 20273f5d-da2c-44b9-b48a-a9d0608987ed + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:32:13 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@16bc7ec1, org.springframework.security.web.context.SecurityContextPersistenceFilter@531448d7, org.springframework.security.web.header.HeaderWriterFilter@305c5b38, org.springframework.security.web.authentication.logout.LogoutFilter@98e7be0, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@49eb8c16, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2a7acd3e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@95fb0dc, org.springframework.security.web.access.ExceptionTranslationFilter@596752bf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@c5905b4] +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.37 seconds (JVM running for 12865.296) +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:32:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:32:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:32:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:32:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:32:13 [restartedMain] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2025-10-22 14:32:13 [restartedMain] ERROR o.s.boot.SpringApplication - Application run failed +java.lang.IllegalStateException: Failed to execute CommandLineRunner + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.13.jar:2.6.13] + at com.qf.myafterprojecy.MyAfterProjecyApplication.main(MyAfterProjecyApplication.java:10) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.6.13.jar:2.6.13] +Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy45/jdk.proxy45.$Proxy534.countByArticleId(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.testQueryMethods(MessageDataChecker.java:105) ~[classes/:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.run(MessageDataChecker.java:47) ~[classes/:na] + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-2.6.13.jar:2.6.13] + ... 8 common frames omitted +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 18 common frames omitted +2025-10-22 14:32:13 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:32:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:32:26 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 2656 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:32:26 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:32:26 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:32:26 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2025-10-22 14:32:26 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2025-10-22 14:32:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:32:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 42 ms. Found 4 JPA repository interfaces. +2025-10-22 14:32:26 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:32:27 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:32:27 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:32:27 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:32:27 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:32:27 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 880 ms +2025-10-22 14:32:27 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:32:27 [restartedMain] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.6.12.Final +2025-10-22 14:32:27 [restartedMain] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final} +2025-10-22 14:32:27 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:32:27 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:32:27 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:32:28 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:32:28 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:28 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: d9001562-6e8e-4014-b404-83406c128ea6 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:32:28 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@74b78fb8, org.springframework.security.web.context.SecurityContextPersistenceFilter@5a0723a, org.springframework.security.web.header.HeaderWriterFilter@76029b52, org.springframework.security.web.authentication.logout.LogoutFilter@70131a4f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@568a542e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3ac9c280, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7a56b4b1, org.springframework.security.web.access.ExceptionTranslationFilter@3b0113dd, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1a22f2f5] +2025-10-22 14:32:28 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:32:28 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:32:28 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 2.598 seconds (JVM running for 2.912) +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:32:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:32:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:32:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:32:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:32:28 [restartedMain] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2025-10-22 14:32:28 [restartedMain] ERROR o.s.boot.SpringApplication - Application run failed +java.lang.IllegalStateException: Failed to execute CommandLineRunner + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) + at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) + at com.qf.myafterprojecy.MyAfterProjecyApplication.main(MyAfterProjecyApplication.java:10) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) +Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) + at jdk.proxy3/jdk.proxy3.$Proxy125.countByArticleId(Unknown Source) + at com.qf.myafterprojecy.runner.MessageDataChecker.testQueryMethods(MessageDataChecker.java:105) + at com.qf.myafterprojecy.runner.MessageDataChecker.run(MessageDataChecker.java:47) + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) + ... 8 common frames omitted +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) + at java.base/java.util.Optional.orElseThrow(Optional.java:403) + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) + at org.springframework.data.util.Lazy.get(Lazy.java:115) + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) + ... 18 common frames omitted +2025-10-22 14:32:28 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:32:28 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:32:28 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:33:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:33:25 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:33:25 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:33:25 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2025-10-22 14:33:25 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2025-10-22 14:33:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:33:26 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 39 ms. Found 4 JPA repository interfaces. +2025-10-22 14:33:26 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:33:26 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:33:26 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:33:26 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:33:26 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:33:26 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 826 ms +2025-10-22 14:33:26 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:33:26 [restartedMain] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.6.12.Final +2025-10-22 14:33:26 [restartedMain] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final} +2025-10-22 14:33:26 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:33:27 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:33:27 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:33:27 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:33:27 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:33:27 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 65c0c078-a8e0-4079-884e-7eb2f752bd01 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:33:27 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@174fed7b, org.springframework.security.web.context.SecurityContextPersistenceFilter@478443d3, org.springframework.security.web.header.HeaderWriterFilter@34acebf8, org.springframework.security.web.authentication.logout.LogoutFilter@7083bb56, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@24a17b88, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3bc0884a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@72456670, org.springframework.security.web.access.ExceptionTranslationFilter@1beac428, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6a6fd683] +2025-10-22 14:33:27 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:33:28 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:33:28 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 2.538 seconds (JVM running for 2.817) +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:33:28 CST 2025] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 245 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=245 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 245 +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [245] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [245] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [245] +2025-10-22 14:33:28 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [245] +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 245 +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID245: 成功=true +2025-10-22 14:33:28 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:37:11 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 14:37:11 [Thread-5] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 14:37:11 [Thread-5] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:37:11 [Thread-5] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 14:37:11 [Thread-5] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 14:37:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 14:37:11 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 14:37:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 14:37:11 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 14:37:11 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 14:37:11 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 14:37:12 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 14:37:12 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 14:37:12 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 173 ms +2025-10-22 14:37:12 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 14:37:12 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 14:37:12 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 14:37:12 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 14:37:12 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 14:37:12 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 14:37:12 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 1fd27520-4bf1-4f75-af91-d0e98dab31fe + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 14:37:12 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3cab0485, org.springframework.security.web.context.SecurityContextPersistenceFilter@47d0277c, org.springframework.security.web.header.HeaderWriterFilter@418feae8, org.springframework.security.web.authentication.logout.LogoutFilter@5e90f363, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@20e82285, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@265baa46, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@43cae11, org.springframework.security.web.access.ExceptionTranslationFilter@523a91f7, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6b800b35] +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.497 seconds (JVM running for 227.094) +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 14:37:12 CST 2025] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 246 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=246 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 246 +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [246] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [246] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [246] +2025-10-22 14:37:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [246] +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 246 +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID246: 成功=true +2025-10-22 14:37:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 14:37:12 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 14:52:29 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 14:52:29 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 14:52:29 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-22 14:52:29 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 1 +2025-10-22 14:52:29 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 1 +2025-10-22 14:52:29 [http-nio-8080-exec-5] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 14:52:29 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 2 +2025-10-22 14:52:29 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 2 +2025-10-22 14:52:29 [http-nio-8080-exec-3] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [2] +2025-10-22 14:52:29 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 3 +2025-10-22 14:52:29 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 3 +2025-10-22 14:52:29 [http-nio-8080-exec-4] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [3] +2025-10-22 14:52:29 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 4 +2025-10-22 14:52:29 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 4 +2025-10-22 14:52:29 [http-nio-8080-exec-2] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [4] +2025-10-22 14:52:29 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收根据文章ID获取消息的请求: 5 +2025-10-22 14:52:29 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 根据文章ID查询消息: 5 +2025-10-22 14:52:29 [http-nio-8080-exec-6] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [5] +2025-10-22 14:52:32 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 14:52:32 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 14:52:33 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:52:33 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:52:33 [http-nio-8080-exec-8] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy5/jdk.proxy5.$Proxy140.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +2025-10-22 14:52:48 [http-nio-8080-exec-9] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 14:52:48 [http-nio-8080-exec-9] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 14:52:48 [http-nio-8080-exec-9] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy5/jdk.proxy5.$Proxy140.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +2025-10-22 15:00:03 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 15:00:03 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 15:00:03 [http-nio-8080-exec-1] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy5/jdk.proxy5.$Proxy140.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +2025-10-22 15:01:40 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 3 class path changes (0 additions, 0 deletions, 3 modifications) +2025-10-22 15:01:40 [Thread-7] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 15:01:40 [Thread-7] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 15:01:40 [Thread-7] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 15:01:40 [Thread-7] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 15:01:40 [Thread-7] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 15:01:40 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 15:01:40 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 15:01:40 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 15:01:40 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 15:01:40 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 15:01:40 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 15:01:40 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 206 ms +2025-10-22 15:01:40 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 15:01:40 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 15:01:40 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 15:01:40 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 15:01:40 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 15:01:40 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 15:01:40 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: ebdf8946-e662-4d02-8a00-1dec33780749 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 15:01:40 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4fae227, org.springframework.security.web.context.SecurityContextPersistenceFilter@6cd821eb, org.springframework.security.web.header.HeaderWriterFilter@760586e4, org.springframework.security.web.authentication.logout.LogoutFilter@2d43812e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@69895ea1, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@798e9b87, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@2ddd6df6, org.springframework.security.web.access.ExceptionTranslationFilter@5ce99fc8, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@78b59e5f] +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.483 seconds (JVM running for 1695.6) +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 15:01:40 CST 2025] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 247 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=247 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 247 +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [247] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [247] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [247] +2025-10-22 15:01:40 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [247] +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 247 +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID247: 成功=true +2025-10-22 15:01:40 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 15:01:40 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 15:53:47 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 15:53:47 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 15:53:47 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-22 15:53:47 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 15:53:47 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 15:53:47 [http-nio-8080-exec-1] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy6/jdk.proxy6.$Proxy154.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy6/jdk.proxy6.$Proxy156.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 15:53:49 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 15:53:49 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 15:53:52 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 15:53:52 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 15:53:52 [http-nio-8080-exec-3] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy6/jdk.proxy6.$Proxy154.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:186) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy6/jdk.proxy6.$Proxy156.getSingleResult(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = ?1] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + ... 114 common frames omitted +2025-10-22 16:33:56 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 16:33:56 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:34:01 [http-nio-8080-exec-7] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 16:34:01 [http-nio-8080-exec-7] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:34:11 [http-nio-8080-exec-8] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 16:34:11 [http-nio-8080-exec-8] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:35:05 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 16:35:05 [Thread-11] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 16:35:05 [Thread-11] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 16:35:05 [Thread-11] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:05 [Thread-11] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 16:35:05 [Thread-11] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 16:35:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 16:35:05 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 16:35:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 16:35:06 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 16:35:06 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 16:35:06 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 16:35:06 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 16:35:06 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 16:35:06 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 211 ms +2025-10-22 16:35:06 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 16:35:06 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 16:35:06 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 16:35:06 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 16:35:06 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 16:35:06 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:06 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 3c70549c-7110-4608-9cd6-1ad971cefc5e + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 16:35:06 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2c95c5a8, org.springframework.security.web.context.SecurityContextPersistenceFilter@3ff8f8d5, org.springframework.security.web.header.HeaderWriterFilter@393b010a, org.springframework.security.web.authentication.logout.LogoutFilter@7e8d9135, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7e2e8d18, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6d55841c, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5e239131, org.springframework.security.web.access.ExceptionTranslationFilter@7f5d86bf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1862e6f1] +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.496 seconds (JVM running for 7301.182) +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 16:35:06 CST 2025] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 248 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=248 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 248 +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [248] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [248] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [248] +2025-10-22 16:35:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [248] +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 248 +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID248: 成功=true +2025-10-22 16:35:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 16:35:06 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 16:35:07 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 16:35:07 [Thread-15] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 16:35:07 [Thread-15] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:07 [Thread-15] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 16:35:07 [Thread-15] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 16:35:07 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 16:35:07 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 16:35:07 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 16:35:08 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 16:35:08 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 16:35:08 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 16:35:08 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 16:35:08 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 16:35:08 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 158 ms +2025-10-22 16:35:08 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 16:35:08 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 16:35:08 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 16:35:08 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 16:35:08 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 16:35:08 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:08 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 294d3439-cf39-40aa-8aa4-43cfd5fdb8cc + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 16:35:08 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6396ae9b, org.springframework.security.web.context.SecurityContextPersistenceFilter@43740c2a, org.springframework.security.web.header.HeaderWriterFilter@7239471d, org.springframework.security.web.authentication.logout.LogoutFilter@7fe8af8c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@68c214e8, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@24a75f5f, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@49d46991, org.springframework.security.web.access.ExceptionTranslationFilter@73d7ffd0, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@484625b7] +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.442 seconds (JVM running for 7303.089) +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 16:35:08 CST 2025] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 249 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=249 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 249 +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [249] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [249] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [249] +2025-10-22 16:35:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [249] +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 249 +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID249: 成功=true +2025-10-22 16:35:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 16:35:08 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 16:35:10 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 16:35:10 [Thread-19] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 16:35:10 [Thread-19] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:10 [Thread-19] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 16:35:10 [Thread-19] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 16:35:10 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 20668 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 16:35:10 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 16:35:10 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 16:35:10 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 16:35:10 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 19 ms. Found 4 JPA repository interfaces. +2025-10-22 16:35:11 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 16:35:11 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 16:35:11 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 16:35:11 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 214 ms +2025-10-22 16:35:11 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 16:35:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 16:35:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 16:35:11 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 16:35:11 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 16:35:11 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:11 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 1fd54f39-a6e7-4ccd-9107-eac895802b4b + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 16:35:11 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4d5963b0, org.springframework.security.web.context.SecurityContextPersistenceFilter@45e23030, org.springframework.security.web.header.HeaderWriterFilter@50ffa079, org.springframework.security.web.authentication.logout.LogoutFilter@39747bbb, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@469e1054, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@40923990, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@1aea2086, org.springframework.security.web.access.ExceptionTranslationFilter@1853cb3c, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@347d7016] +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.453 seconds (JVM running for 7306.035) +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 16:35:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 16:35:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 16:35:11 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 16:35:11 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 16:35:11 [restartedMain] INFO o.s.b.a.l.ConditionEvaluationReportLoggingListener - + +Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. +2025-10-22 16:35:11 [restartedMain] ERROR o.s.boot.SpringApplication - Application run failed +java.lang.IllegalStateException: Failed to execute CommandLineRunner + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:785) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:766) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.13.jar:2.6.13] + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.13.jar:2.6.13] + at com.qf.myafterprojecy.MyAfterProjecyApplication.main(MyAfterProjecyApplication.java:10) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.6.13.jar:2.6.13] +Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters.; nested exception is java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy9/jdk.proxy9.$Proxy184.countByArticleId(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.testQueryMethods(MessageDataChecker.java:105) ~[classes/:na] + at com.qf.myafterprojecy.runner.MessageDataChecker.run(MessageDataChecker.java:47) ~[classes/:na] + at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:782) ~[spring-boot-2.6.13.jar:2.6.13] + ... 8 common frames omitted +Caused by: java.lang.IllegalStateException: For queries with named parameters you need to use provide names for method parameters. Use @Param for query method parameters, or when on Java 8+ use the javac flag -parameters. + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.lambda$getName$2(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.getName(QueryParameterSetterFactory.java:259) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.findParameterForBinding(QueryParameterSetterFactory.java:245) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.QueryParameterSetterFactory$BasicQueryParameterSetterFactory.create(QueryParameterSetterFactory.java:216) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryParameterSetter(ParameterBinderFactory.java:140) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createSetters(ParameterBinderFactory.java:129) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.ParameterBinderFactory.createQueryAwareBinder(ParameterBinderFactory.java:100) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.createBinder(AbstractStringBasedJpaQuery.java:105) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.getNullable(Lazy.java:231) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.util.Lazy.get(Lazy.java:115) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractStringBasedJpaQuery.doCreateQuery(AbstractStringBasedJpaQuery.java:95) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.createQuery(AbstractJpaQuery.java:227) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 18 common frames omitted +2025-10-22 16:35:11 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:35:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 16:35:11 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 16:48:55 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 16:48:55 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 16:48:55 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 16:48:55 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable +2025-10-22 16:48:55 [restartedMain] INFO o.s.b.d.e.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' +2025-10-22 16:48:55 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 16:48:55 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 47 ms. Found 4 JPA repository interfaces. +2025-10-22 16:48:55 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 16:48:55 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 16:48:56 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 16:48:56 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 16:48:56 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 16:48:56 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 855 ms +2025-10-22 16:48:56 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 16:48:56 [restartedMain] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.6.12.Final +2025-10-22 16:48:56 [restartedMain] INFO o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final} +2025-10-22 16:48:56 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 16:48:56 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 16:48:56 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 16:48:56 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 16:48:56 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 16:48:57 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: ded3a573-b5ad-4805-8632-b18c6f2c93ed + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 16:48:57 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@27942dd0, org.springframework.security.web.context.SecurityContextPersistenceFilter@4635534c, org.springframework.security.web.header.HeaderWriterFilter@36c02de, org.springframework.security.web.authentication.logout.LogoutFilter@1904be60, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@17f20930, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@568a542e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@74b78fb8, org.springframework.security.web.access.ExceptionTranslationFilter@2ac90397, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@6ddddca5] +2025-10-22 16:48:57 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 16:48:57 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 16:48:57 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 2.442 seconds (JVM running for 2.707) +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 16:48:57 CST 2025] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 250 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=250 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 250 +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [250] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [250] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [250] +2025-10-22 16:48:57 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [250] +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 250 +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID250: 成功=true +2025-10-22 16:48:57 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 16:49:05 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 16:49:05 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 16:49:05 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 0 ms +2025-10-22 16:49:05 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收获取文章评论数量的请求: 1 +2025-10-22 16:49:05 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 16:49:05 [http-nio-8080-exec-1] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:08:51 [http-nio-8080-exec-4] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 17:08:51 [http-nio-8080-exec-4] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:08:53 [http-nio-8080-exec-5] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 17:08:53 [http-nio-8080-exec-5] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 17:08:53 [http-nio-8080-exec-5] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = :messageId]; nested exception is java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = :messageId] + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:371) + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) + at jdk.proxy3/jdk.proxy3.$Proxy125.incrementLikes(Unknown Source) + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:187) + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) + at java.base/java.lang.Thread.run(Thread.java:1447) +Caused by: java.lang.IllegalStateException: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = :messageId] + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1620) + at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1665) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) + at java.base/java.lang.reflect.Method.invoke(Method.java:565) + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) + at jdk.proxy3/jdk.proxy3.$Proxy132.getSingleResult(Unknown Source) + at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:198) + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) + ... 93 common frames omitted +Caused by: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [UPDATE com.qf.myafterprojecy.pojo.Message m SET m.likes = m.likes + 1 WHERE m.messageid = :messageId] + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:319) + at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) + at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:219) + at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) + at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) + at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) + ... 114 common frames omitted +2025-10-22 17:11:33 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:11:33 [Thread-5] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:11:33 [Thread-5] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 17:11:33 [Thread-5] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:11:33 [Thread-5] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:11:33 [Thread-5] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:11:33 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:11:33 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:11:33 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:11:33 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:11:33 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 17:11:33 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:11:33 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:11:33 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:11:33 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:11:33 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:11:33 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 212 ms +2025-10-22 17:11:33 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:11:33 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:11:33 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:11:33 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:11:33 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:11:33 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:11:33 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 2032482b-0374-494b-bcce-7253baed8e76 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:11:33 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@51cec1ab, org.springframework.security.web.context.SecurityContextPersistenceFilter@1583da98, org.springframework.security.web.header.HeaderWriterFilter@684fab27, org.springframework.security.web.authentication.logout.LogoutFilter@267fa4d8, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5546b0e6, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@580137e3, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@14f36909, org.springframework.security.web.access.ExceptionTranslationFilter@257517ea, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@21521c77] +2025-10-22 17:11:34 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:11:34 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:11:34 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.511 seconds (JVM running for 1359.381) +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:11:34 CST 2025] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 251 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=251 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 251 +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [251] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [251] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [251] +2025-10-22 17:11:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [251] +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 251 +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID251: 成功=true +2025-10-22 17:11:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:11:34 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:11:35 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 3 class path changes (0 additions, 0 deletions, 3 modifications) +2025-10-22 17:11:35 [Thread-7] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:11:35 [Thread-7] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:11:35 [Thread-7] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:11:35 [Thread-7] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:11:35 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:11:35 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:11:35 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:11:35 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:11:35 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:11:35 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:11:35 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:11:35 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:11:35 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 162 ms +2025-10-22 17:11:35 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:11:35 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:11:35 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:11:35 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:11:35 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:11:35 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:11:35 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 8b61f56d-25ba-47f2-a0c8-2c9720eee1e9 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:11:35 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4b662026, org.springframework.security.web.context.SecurityContextPersistenceFilter@51467feb, org.springframework.security.web.header.HeaderWriterFilter@1823eca2, org.springframework.security.web.authentication.logout.LogoutFilter@11d47513, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@445e222d, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@74ce5169, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@957393, org.springframework.security.web.access.ExceptionTranslationFilter@77f8eb04, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1c0d0deb] +2025-10-22 17:11:35 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:11:35 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:11:35 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.41 seconds (JVM running for 1361.252) +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:11:35 CST 2025] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 252 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=252 +2025-10-22 17:11:35 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 252 +2025-10-22 17:11:35 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [252] +2025-10-22 17:11:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [252] +2025-10-22 17:11:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [252] +2025-10-22 17:11:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [252] +2025-10-22 17:11:36 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 252 +2025-10-22 17:11:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID252: 成功=true +2025-10-22 17:11:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:11:36 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:05 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:05 [Thread-11] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:05 [Thread-11] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:05 [Thread-11] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:05 [Thread-11] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:05 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:05 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:05 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:05 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:05 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:05 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:05 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:05 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:05 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 170 ms +2025-10-22 17:12:05 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:05 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:05 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:05 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:05 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:05 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:06 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 9a36b164-ab95-48e1-868e-6c2ab77f7f02 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:06 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@8337005, org.springframework.security.web.context.SecurityContextPersistenceFilter@5f4835b9, org.springframework.security.web.header.HeaderWriterFilter@2d4fe99c, org.springframework.security.web.authentication.logout.LogoutFilter@533d363b, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@f46c5f3, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1f173eb0, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@e51d463, org.springframework.security.web.access.ExceptionTranslationFilter@7d1dbb90, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@a1bd32c] +2025-10-22 17:12:06 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:06 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:06 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.407 seconds (JVM running for 1391.406) +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:06 CST 2025] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 253 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=253 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 253 +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [253] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [253] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [253] +2025-10-22 17:12:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [253] +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 253 +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID253: 成功=true +2025-10-22 17:12:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:06 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:12 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:12 [Thread-15] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:12 [Thread-15] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:12 [Thread-15] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:12 [Thread-15] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:13 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:13 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:13 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:13 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:13 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:13 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:13 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 157 ms +2025-10-22 17:12:13 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:13 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:13 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:13 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:13 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:13 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 3ca3376f-bcd7-4287-b0bf-e3df2096f0d6 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:13 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@300fda06, org.springframework.security.web.context.SecurityContextPersistenceFilter@75d95665, org.springframework.security.web.header.HeaderWriterFilter@77e591d0, org.springframework.security.web.authentication.logout.LogoutFilter@1affd09a, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@434334f0, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@7e9ab526, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@129d11c0, org.springframework.security.web.access.ExceptionTranslationFilter@4a4ee543, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@7c1e938f] +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.374 seconds (JVM running for 1398.709) +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:13 CST 2025] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 254 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=254 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 254 +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [254] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [254] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [254] +2025-10-22 17:12:13 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [254] +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 254 +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID254: 成功=true +2025-10-22 17:12:13 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:13 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:17 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:17 [Thread-19] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:17 [Thread-19] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:17 [Thread-19] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:17 [Thread-19] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:17 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:17 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:17 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:17 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:18 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:18 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:18 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:18 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:18 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 160 ms +2025-10-22 17:12:18 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:18 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:18 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:18 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:18 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:18 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:18 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 92c61082-d340-46f1-b40a-34c9cf602edf + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:18 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@1fbbdc50, org.springframework.security.web.context.SecurityContextPersistenceFilter@68f0158b, org.springframework.security.web.header.HeaderWriterFilter@36d947c0, org.springframework.security.web.authentication.logout.LogoutFilter@7c1a7992, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@7f1908c3, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6835d750, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@4d1701bc, org.springframework.security.web.access.ExceptionTranslationFilter@ea3230b, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@45ddc110] +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.383 seconds (JVM running for 1403.582) +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:18 CST 2025] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 255 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=255 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 255 +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [255] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [255] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [255] +2025-10-22 17:12:18 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [255] +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 255 +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID255: 成功=true +2025-10-22 17:12:18 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:18 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:19 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:19 [Thread-23] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:19 [Thread-23] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:19 [Thread-23] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:19 [Thread-23] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:19 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:19 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:19 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:19 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:19 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:19 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:19 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:19 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:19 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:19 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:19 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 155 ms +2025-10-22 17:12:19 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:19 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:19 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:19 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:19 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:19 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:20 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: feb85d4e-521d-4625-b1a5-f0b537a3de42 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:20 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@65fe1748, org.springframework.security.web.context.SecurityContextPersistenceFilter@1db3a43, org.springframework.security.web.header.HeaderWriterFilter@7c6dbad9, org.springframework.security.web.authentication.logout.LogoutFilter@78b7b82c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@5ce72d3e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@314c58d3, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@6f3c033, org.springframework.security.web.access.ExceptionTranslationFilter@4ec47049, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1f7ec242] +2025-10-22 17:12:20 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:20 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:20 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.392 seconds (JVM running for 1405.429) +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:20 CST 2025] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 256 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=256 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 256 +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [256] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [256] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [256] +2025-10-22 17:12:20 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [256] +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 256 +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID256: 成功=true +2025-10-22 17:12:20 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:20 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:22 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:22 [Thread-27] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:22 [Thread-27] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:22 [Thread-27] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:22 [Thread-27] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:22 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:22 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:22 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:22 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:22 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:22 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:22 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:22 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:22 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 160 ms +2025-10-22 17:12:22 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:22 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:22 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:22 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:22 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:22 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:22 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: bcd1e493-16db-43d8-9b37-aece043104ac + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:22 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5e895ab2, org.springframework.security.web.context.SecurityContextPersistenceFilter@2d08e121, org.springframework.security.web.header.HeaderWriterFilter@42faed46, org.springframework.security.web.authentication.logout.LogoutFilter@56d0d0c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@767f378c, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@7a83baff, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@27162166, org.springframework.security.web.access.ExceptionTranslationFilter@7cae0bcf, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@58e5f29d] +2025-10-22 17:12:22 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:22 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:22 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.379 seconds (JVM running for 1408.285) +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:22 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:22 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:23 CST 2025] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 257 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=257 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 257 +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [257] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [257] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [257] +2025-10-22 17:12:23 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [257] +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 257 +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID257: 成功=true +2025-10-22 17:12:23 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:23 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:24 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:24 [Thread-31] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:24 [Thread-31] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:24 [Thread-31] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:24 [Thread-31] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:24 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:24 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:24 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:24 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:24 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:24 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:24 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 151 ms +2025-10-22 17:12:24 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:24 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:24 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:24 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:24 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:24 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:24 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: eb9aaddb-fe7f-48c5-b587-8813119fc455 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:24 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@209075ec, org.springframework.security.web.context.SecurityContextPersistenceFilter@3058bde8, org.springframework.security.web.header.HeaderWriterFilter@4d18f23d, org.springframework.security.web.authentication.logout.LogoutFilter@beab55c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@27d24a0f, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@742b6d3e, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@37d44e76, org.springframework.security.web.access.ExceptionTranslationFilter@57609942, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@763be2c3] +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.379 seconds (JVM running for 1410.132) +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:24 CST 2025] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 258 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=258 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 258 +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [258] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [258] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [258] +2025-10-22 17:12:24 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [258] +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 258 +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID258: 成功=true +2025-10-22 17:12:24 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:24 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:12:50 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:12:50 [Thread-35] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:12:50 [Thread-35] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:50 [Thread-35] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:12:50 [Thread-35] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:12:50 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:12:50 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:12:50 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:12:50 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:12:50 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:12:50 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:12:50 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 154 ms +2025-10-22 17:12:50 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:12:50 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:12:50 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:12:50 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:12:50 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:12:50 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:12:50 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: eb78eff7-b4ce-49f4-a44e-d7a98197e792 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:12:50 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6d9a70b2, org.springframework.security.web.context.SecurityContextPersistenceFilter@578ba41b, org.springframework.security.web.header.HeaderWriterFilter@5a6801d5, org.springframework.security.web.authentication.logout.LogoutFilter@1a8af6ed, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@44f5a3a7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@a57fda9, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@f432993, org.springframework.security.web.access.ExceptionTranslationFilter@1b9faba, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@428ac1e5] +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.362 seconds (JVM running for 1436.214) +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:12:50 CST 2025] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 259 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=259 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 259 +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [259] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [259] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [259] +2025-10-22 17:12:50 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [259] +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 259 +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID259: 成功=true +2025-10-22 17:12:50 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:12:50 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:13:01 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:13:01 [Thread-39] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:13:01 [Thread-39] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:13:01 [Thread-39] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:13:01 [Thread-39] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:13:01 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:13:01 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:13:01 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:13:01 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:13:01 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:13:01 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:13:01 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 162 ms +2025-10-22 17:13:01 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:13:01 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:13:01 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:13:01 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:13:01 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:13:01 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:13:01 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 64a10477-457c-4c92-b678-3c0dcbac9ba1 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:13:01 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@3c74a159, org.springframework.security.web.context.SecurityContextPersistenceFilter@4b1b90e, org.springframework.security.web.header.HeaderWriterFilter@6b58c2c1, org.springframework.security.web.authentication.logout.LogoutFilter@147a64f8, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1031adfb, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@30e94588, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7bd7c610, org.springframework.security.web.access.ExceptionTranslationFilter@79ab2a67, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@7fe17dc9] +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.407 seconds (JVM running for 1447.176) +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:13:01 CST 2025] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 260 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=260 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 260 +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [260] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [260] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [260] +2025-10-22 17:13:01 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [260] +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 260 +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID260: 成功=true +2025-10-22 17:13:01 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:13:01 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:13:08 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:13:08 [Thread-43] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:13:08 [Thread-43] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:13:08 [Thread-43] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:13:08 [Thread-43] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:13:08 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:13:08 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:13:08 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 14 ms. Found 4 JPA repository interfaces. +2025-10-22 17:13:08 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:13:08 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:13:08 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:13:08 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 172 ms +2025-10-22 17:13:08 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:13:08 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:13:08 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:13:08 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:13:08 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:13:08 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:13:08 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 3fd63215-c4d8-45ea-bf5e-7dbd2f6b298b + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:13:08 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@68220527, org.springframework.security.web.context.SecurityContextPersistenceFilter@221c561e, org.springframework.security.web.header.HeaderWriterFilter@794af326, org.springframework.security.web.authentication.logout.LogoutFilter@340a056e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@501d10da, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@5a9b1aec, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5d0fcf8a, org.springframework.security.web.access.ExceptionTranslationFilter@642dc439, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@2e0a1ee3] +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.399 seconds (JVM running for 1454.089) +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:13:08 CST 2025] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 261 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=261 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 261 +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [261] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [261] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [261] +2025-10-22 17:13:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [261] +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 261 +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID261: 成功=true +2025-10-22 17:13:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:13:08 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:13:12 [http-nio-8080-exec-2] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 17:13:12 [http-nio-8080-exec-2] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 17:13:12 [http-nio-8080-exec-2] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms +2025-10-22 17:13:12 [http-nio-8080-exec-2] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 17:13:12 [http-nio-8080-exec-2] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:13:14 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 17:13:14 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 17:13:14 [http-nio-8080-exec-1] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:403) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy15/jdk.proxy15.$Proxy242.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:187) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query + at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:445) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1692) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy15/jdk.proxy15.$Proxy244.executeUpdate(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$ModifyingExecution.doExecute(JpaQueryExecution.java:241) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +2025-10-22 17:14:34 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:14:34 [Thread-47] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:14:34 [Thread-47] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Destroying Spring FrameworkServlet 'dispatcherServlet' +2025-10-22 17:14:34 [Thread-47] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:14:34 [Thread-47] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:14:34 [Thread-47] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:14:34 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:14:34 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:14:34 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:14:34 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:14:34 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:14:34 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:14:34 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 157 ms +2025-10-22 17:14:34 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:14:34 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:14:34 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:14:34 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:14:34 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:14:34 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:14:34 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 8c076cfa-e5be-4b27-827e-7ee1b9a98e10 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:14:34 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6b944bb2, org.springframework.security.web.context.SecurityContextPersistenceFilter@4bbd14d3, org.springframework.security.web.header.HeaderWriterFilter@783d90b, org.springframework.security.web.authentication.logout.LogoutFilter@27925673, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@54b3ec09, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@1df8088c, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5f37bbd, org.springframework.security.web.access.ExceptionTranslationFilter@4521947f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@568a271a] +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.378 seconds (JVM running for 1539.732) +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:14:34 CST 2025] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 262 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=262 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 262 +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [262] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [262] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [262] +2025-10-22 17:14:34 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [262] +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 262 +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID262: 成功=true +2025-10-22 17:14:34 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:14:34 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:14:35 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:14:35 [Thread-51] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:14:35 [Thread-51] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:14:35 [Thread-51] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:14:35 [Thread-51] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:14:35 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:14:35 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:14:35 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:14:35 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:14:35 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:14:36 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:14:36 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:14:36 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:14:36 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 151 ms +2025-10-22 17:14:36 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:14:36 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:14:36 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:14:36 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:14:36 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:14:36 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:14:36 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: f74a0bbd-08b3-4e36-9b86-55e4bb70bf1f + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:14:36 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4d08ef1e, org.springframework.security.web.context.SecurityContextPersistenceFilter@51814b22, org.springframework.security.web.header.HeaderWriterFilter@6fa09c13, org.springframework.security.web.authentication.logout.LogoutFilter@57643b6f, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@370bc0f7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@67cce174, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@45618bca, org.springframework.security.web.access.ExceptionTranslationFilter@79953042, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@79156c15] +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.358 seconds (JVM running for 1541.549) +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:14:36 CST 2025] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 263 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=263 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 263 +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [263] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [263] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [263] +2025-10-22 17:14:36 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [263] +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 263 +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID263: 成功=true +2025-10-22 17:14:36 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:14:36 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:14:59 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:14:59 [Thread-55] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:14:59 [Thread-55] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:14:59 [Thread-55] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:14:59 [Thread-55] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:14:59 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:14:59 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:14:59 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:00 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:00 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 13 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:00 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:00 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:00 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:00 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 176 ms +2025-10-22 17:15:00 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:00 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:00 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:00 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:00 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:00 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:00 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 21be80f2-e463-4cb6-ac3a-f205582c4ea0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:00 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@686722da, org.springframework.security.web.context.SecurityContextPersistenceFilter@54621586, org.springframework.security.web.header.HeaderWriterFilter@23ed379a, org.springframework.security.web.authentication.logout.LogoutFilter@2fd2f452, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@39b9aae8, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@21c3b0df, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@a4d751, org.springframework.security.web.access.ExceptionTranslationFilter@70dd07ff, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@749eec46] +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.4 seconds (JVM running for 1565.664) +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:00 CST 2025] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 264 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=264 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 264 +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [264] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [264] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [264] +2025-10-22 17:15:00 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [264] +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 264 +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID264: 成功=true +2025-10-22 17:15:00 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:00 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:15:05 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:15:05 [Thread-59] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:15:05 [Thread-59] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:05 [Thread-59] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:15:05 [Thread-59] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:15:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:15:05 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:15:05 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:05 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:05 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:05 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:06 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:06 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:06 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 162 ms +2025-10-22 17:15:06 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:06 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:06 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:06 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:06 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:06 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:06 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: e7129e29-a62a-4730-8e50-6e2ba9f394aa + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:06 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@55321506, org.springframework.security.web.context.SecurityContextPersistenceFilter@17df398e, org.springframework.security.web.header.HeaderWriterFilter@1027478f, org.springframework.security.web.authentication.logout.LogoutFilter@1e3fe3, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@619c86ff, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@445254c2, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@14b31d23, org.springframework.security.web.access.ExceptionTranslationFilter@36027d2b, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@57539e7f] +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.385 seconds (JVM running for 1571.543) +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:06 CST 2025] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 265 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=265 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 265 +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [265] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [265] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [265] +2025-10-22 17:15:06 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [265] +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 265 +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID265: 成功=true +2025-10-22 17:15:06 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:06 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:15:07 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:15:07 [Thread-63] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:15:07 [Thread-63] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:07 [Thread-63] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:15:07 [Thread-63] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:15:07 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:15:07 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:15:07 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:07 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:07 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:07 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:07 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:07 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:07 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:07 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:07 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 155 ms +2025-10-22 17:15:07 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:07 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:07 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:07 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:07 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:07 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:08 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: f54d2377-9934-42ed-a888-d2a583e369a0 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:08 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5e407632, org.springframework.security.web.context.SecurityContextPersistenceFilter@3c13f6ee, org.springframework.security.web.header.HeaderWriterFilter@64f4d1c0, org.springframework.security.web.authentication.logout.LogoutFilter@5299939c, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4c36fb7, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@33a612a2, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@5685b85a, org.springframework.security.web.access.ExceptionTranslationFilter@4a2fafb2, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@5477d99b] +2025-10-22 17:15:08 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:08 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:08 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.367 seconds (JVM running for 1573.372) +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:08 CST 2025] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 266 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=266 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 266 +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [266] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [266] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [266] +2025-10-22 17:15:08 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [266] +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 266 +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID266: 成功=true +2025-10-22 17:15:08 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:08 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:15:10 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:15:10 [Thread-67] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:15:10 [Thread-67] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:10 [Thread-67] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:15:10 [Thread-67] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:15:10 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:10 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:10 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:10 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:10 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:10 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:10 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 166 ms +2025-10-22 17:15:10 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:10 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:10 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:10 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:10 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:10 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:10 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 00d55160-e146-4b22-80f7-20a02c838aa9 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:10 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@d122bdd, org.springframework.security.web.context.SecurityContextPersistenceFilter@72282ed1, org.springframework.security.web.header.HeaderWriterFilter@5e04b8a7, org.springframework.security.web.authentication.logout.LogoutFilter@763e3a51, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@3dc63206, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@3ee99c66, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@63a80702, org.springframework.security.web.access.ExceptionTranslationFilter@30466d5d, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@542ba13a] +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.377 seconds (JVM running for 1576.218) +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:10 CST 2025] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 267 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=267 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 267 +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [267] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [267] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [267] +2025-10-22 17:15:10 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [267] +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 267 +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID267: 成功=true +2025-10-22 17:15:10 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:10 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:15:12 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:15:12 [Thread-71] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:15:12 [Thread-71] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:12 [Thread-71] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:15:12 [Thread-71] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:15:12 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:12 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:12 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 11 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:12 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:12 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:12 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:12 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 148 ms +2025-10-22 17:15:12 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:12 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:12 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:12 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:12 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:12 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:12 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 2d4e9dc9-b692-4a8b-b95c-d9a880b3796e + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:12 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@5e5e70ea, org.springframework.security.web.context.SecurityContextPersistenceFilter@2b7a73ee, org.springframework.security.web.header.HeaderWriterFilter@6152114e, org.springframework.security.web.authentication.logout.LogoutFilter@b8c187d, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@4278867e, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@2b8498a, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@3d897fbe, org.springframework.security.web.access.ExceptionTranslationFilter@1dbbb76c, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@5abb9ebd] +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.372 seconds (JVM running for 1578.054) +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:12 CST 2025] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 268 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=268 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 268 +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [268] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [268] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [268] +2025-10-22 17:15:12 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [268] +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 268 +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID268: 成功=true +2025-10-22 17:15:12 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:12 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:15:57 [File Watcher] INFO o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener - Restarting due to 1 class path change (0 additions, 0 deletions, 1 modification) +2025-10-22 17:15:57 [Thread-75] INFO o.a.catalina.core.StandardService - Stopping service [Tomcat] +2025-10-22 17:15:57 [Thread-75] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:57 [Thread-75] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown initiated... +2025-10-22 17:15:57 [Thread-75] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Shutdown completed. +2025-10-22 17:15:57 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Starting MyAfterProjecyApplication using Java 24.0.2 on DESKTOP-8G5GS0I with PID 28148 (E:\MyWebProject\MyAfterProjecy\target\classes started by 30803 in E:\MyWebProject\MyAfterProjecy) +2025-10-22 17:15:57 [restartedMain] DEBUG c.q.m.MyAfterProjecyApplication - Running with Spring Boot v2.6.13, Spring v5.3.23 +2025-10-22 17:15:57 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - No active profile set, falling back to 1 default profile: "default" +2025-10-22 17:15:57 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2025-10-22 17:15:57 [restartedMain] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 15 ms. Found 4 JPA repository interfaces. +2025-10-22 17:15:57 [restartedMain] WARN o.m.s.mapper.ClassPathMapperScanner - No MyBatis mapper was found in '[com.qf.myafterprojecy]' package. Please check your configuration. +2025-10-22 17:15:57 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8080 (http) +2025-10-22 17:15:57 [restartedMain] INFO o.a.catalina.core.StandardService - Starting service [Tomcat] +2025-10-22 17:15:57 [restartedMain] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.68] +2025-10-22 17:15:57 [restartedMain] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext +2025-10-22 17:15:57 [restartedMain] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 184 ms +2025-10-22 17:15:57 [restartedMain] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default] +2025-10-22 17:15:57 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Starting... +2025-10-22 17:15:57 [restartedMain] INFO com.zaxxer.hikari.HikariDataSource - WebProjectHikariCP - Start completed. +2025-10-22 17:15:57 [restartedMain] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect +2025-10-22 17:15:57 [restartedMain] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] +2025-10-22 17:15:57 [restartedMain] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default' +2025-10-22 17:15:58 [restartedMain] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration - + +Using generated security password: 73bc6dbb-a4a5-4ee2-ab10-43244d513c81 + +This generated password is for development use only. Your security configuration must be updated before running your application in production. + +2025-10-22 17:15:58 [restartedMain] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@24dd9a48, org.springframework.security.web.context.SecurityContextPersistenceFilter@7365bab6, org.springframework.security.web.header.HeaderWriterFilter@758cfb1c, org.springframework.security.web.authentication.logout.LogoutFilter@319bea7, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@29943b90, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@4fb14954, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@50bf9e7c, org.springframework.security.web.access.ExceptionTranslationFilter@6f613452, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@652a8537] +2025-10-22 17:15:58 [restartedMain] INFO o.s.b.a.w.s.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] +2025-10-22 17:15:58 [restartedMain] INFO o.s.b.d.a.OptionalLiveReloadServer - LiveReload server is running on port 35729 +2025-10-22 17:15:58 [restartedMain] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path '' +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.MyAfterProjecyApplication - Started MyAfterProjecyApplication in 0.424 seconds (JVM running for 1623.384) +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器开始运行 ===== +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 当前数据库中消息数量: 4 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Repository查询方法 ===== +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的消息数量: 3 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根消息数量: 3 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - [%张%] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [CHAR] - [\] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 昵称包含'张'的消息数量: 0 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 文章ID为1的评论数量: 3 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 消息ID为204的回复数量: 1 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 测试Service层方法 ===== +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取所有消息: 成功=true, 消息数量=4 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 根据ID查询消息: 204 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [204] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 根据ID204获取消息: 成功=true, 昵称=1 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 获取文章评论数量: 1 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取文章ID为1的评论数量: 成功=true, 数量=3 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 查询所有根消息 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 获取根消息: 成功=true, 数量=3 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 保存消息: 测试用户 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [1] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [2] as [VARCHAR] - [这是一条测试消息] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [3] as [TIMESTAMP] - [Wed Oct 22 17:15:58 CST 2025] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - [test@example.com] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [5] as [INTEGER] - [null] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - [测试用户] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [7] as [INTEGER] - [null] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [8] as [INTEGER] - [null] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 消息保存成功: 269 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 保存新消息: 成功=true, 消息ID=269 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 删除消息: 269 +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [269] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [269] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [269] +2025-10-22 17:15:58 [restartedMain] TRACE o.h.type.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [269] +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.service.MessageService - 消息删除成功: 269 +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - 删除消息ID269: 成功=true +2025-10-22 17:15:58 [restartedMain] INFO c.q.m.runner.MessageDataChecker - ===== 消息数据检查器运行结束 ===== +2025-10-22 17:15:58 [restartedMain] INFO o.s.b.d.a.ConditionEvaluationDeltaLoggingListener - Condition evaluation unchanged +2025-10-22 17:17:03 [http-nio-8080-exec-1] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet' +2025-10-22 17:17:03 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet' +2025-10-22 17:17:03 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 0 ms +2025-10-22 17:17:03 [http-nio-8080-exec-1] INFO c.q.m.controller.MessageController - 接收点赞消息的请求: 233 +2025-10-22 17:17:03 [http-nio-8080-exec-1] INFO c.q.m.service.MessageService - 点赞消息: 233 +2025-10-22 17:17:03 [http-nio-8080-exec-1] ERROR c.q.m.service.MessageService - 点赞消息失败: 233 +org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query + at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:403) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.23.jar:5.3.23] + at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.23.jar:5.3.23] + at jdk.proxy23/jdk.proxy23.$Proxy322.incrementLikes(Unknown Source) ~[na:na] + at com.qf.myafterprojecy.service.MessageService.likeMessage(MessageService.java:187) ~[classes/:na] + at com.qf.myafterprojecy.controller.MessageController.likeMessage(MessageController.java:97) ~[classes/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.23.jar:5.3.23] + at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.23.jar:5.3.23] + at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.68.jar:4.0.FR] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:337) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:346) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:221) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) ~[spring-security-web-5.6.8.jar:5.6.8] + at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.23.jar:5.3.23] + at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.23.jar:5.3.23] + at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.68.jar:9.0.68] + at java.base/java.lang.Thread.run(Thread.java:1447) ~[na:na] +Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query + at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:445) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1692) ~[hibernate-core-5.6.12.Final.jar:5.6.12.Final] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] + at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:406) ~[spring-orm-5.3.23.jar:5.3.23] + at jdk.proxy23/jdk.proxy23.$Proxy324.executeUpdate(Unknown Source) ~[na:na] + at org.springframework.data.jpa.repository.query.JpaQueryExecution$ModifyingExecution.doExecute(JpaQueryExecution.java:241) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:155) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:143) ~[spring-data-jpa-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:81) ~[spring-data-commons-2.6.9.jar:2.6.9] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.23.jar:5.3.23] + at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.23.jar:5.3.23] + at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.23.jar:5.3.23] + ... 93 common frames omitted +2025-10-22 17:17:24 [http-nio-8080-exec-3] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 17:17:24 [http-nio-8080-exec-3] INFO c.q.m.service.MessageService - 查询所有消息 +2025-10-22 18:13:15 [WebProjectHikariCP housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - WebProjectHikariCP - Thread starvation or clock leap detected (housekeeper delta=1m44s719ms856µs400ns). +2025-10-22 18:59:04 [WebProjectHikariCP housekeeper] WARN com.zaxxer.hikari.pool.HikariPool - WebProjectHikariCP - Thread starvation or clock leap detected (housekeeper delta=16m18s973ms591µs900ns). +2025-10-22 19:40:01 [http-nio-8080-exec-6] INFO c.q.m.controller.MessageController - 接收获取所有消息的请求 +2025-10-22 19:40:01 [http-nio-8080-exec-6] INFO c.q.m.service.MessageService - 查询所有消息 diff --git a/src/main/java/com/qf/myafterprojecy/controller/MessageController.java b/src/main/java/com/qf/myafterprojecy/controller/MessageController.java index c6340ec..2e29a89 100644 --- a/src/main/java/com/qf/myafterprojecy/controller/MessageController.java +++ b/src/main/java/com/qf/myafterprojecy/controller/MessageController.java @@ -90,7 +90,12 @@ public class MessageController { logger.info("接收创建消息的请求: {}", message != null ? message.getNickname() : "null"); return messageService.saveMessage(message); } - + // 点赞数增加 + @PostMapping("/{id}/like") + public ResponseMessage likeMessage(@PathVariable Integer id) { + logger.info("接收点赞消息的请求: {}", id); + return messageService.likeMessage(id); + } /** * 根据ID删除消息 */ diff --git a/src/main/java/com/qf/myafterprojecy/repository/ArticleRepository.java b/src/main/java/com/qf/myafterprojecy/repository/ArticleRepository.java index 37b9fad..967a5c9 100644 --- a/src/main/java/com/qf/myafterprojecy/repository/ArticleRepository.java +++ b/src/main/java/com/qf/myafterprojecy/repository/ArticleRepository.java @@ -10,70 +10,73 @@ import org.springframework.stereotype.Repository; import java.util.List; import java.util.Optional; -@Repository // 表明这是一个数据访问层组件,用于持久层操作 +@Repository // 表明这是一个数据访问层组件,用于持久层操作 public interface ArticleRepository extends JpaRepository { -/** - * 根据文章ID查询文章信息的方法 - * 使用JPQL(Java Persistence Query Language)进行查询 - * - * @param id 文章的唯一标识符,作为查询条件 - * @return 返回一个Optional
对象,可能包含文章信息,也可能为空(如果未找到对应ID的文章) - */ + /** + * 根据文章ID查询文章信息的方法 + * 使用JPQL(Java Persistence Query Language)进行查询 + * + * @param id 文章的唯一标识符,作为查询条件 + * @return 返回一个Optional
对象,可能包含文章信息,也可能为空(如果未找到对应ID的文章) + */ @Query("SELECT a FROM Article a WHERE a.articleid = :id") Optional
findById(@Param("id") Integer id); + /** * 根据标题查询文章列表 + * * @param title 文章标题的一部分,用于模糊查询 * @return 返回符合查询条件的文章列表 */ @Query("SELECT a FROM Article a WHERE a.title LIKE %:title%") List
findByTitle(@Param("title") String title); -/** - * 根据文章ID查询已发布的文章 - * 使用JPQL查询语句,只查询状态为1(已发布)且指定ID的文章 - * - * @return 返回符合查询条件的文章列表 - */ + + /** + * 根据文章ID查询已发布的文章 + * 使用JPQL查询语句,只查询状态为1(已发布)且指定ID的文章 + * + * @return 返回符合查询条件的文章列表 + */ @Query("SELECT a FROM Article a WHERE a.status = 1") List
findPublishedByAuthor(); -/** - * 根据分类ID查询已发布的文章列表 - * 使用JPQL查询语句,筛选状态为已发布(status=1)且指定分类(typeid)的文章 - * - * @param attributeid 分类ID,通过@Param注解映射到查询语句中的:attributeid参数 - * @return 返回符合条件Article对象的列表 - */ + /** + * 根据分类ID查询已发布的文章列表 + * 使用JPQL查询语句,筛选状态为已发布(status=1)且指定分类(typeid)的文章 + * + * @param attributeid 分类ID,通过@Param注解映射到查询语句中的:attributeid参数 + * @return 返回符合条件Article对象的列表 + */ @Query("SELECT a FROM Article a WHERE a.status = 1 AND a.attributeid = :attributeid") List
findPublishedByAttribute(@Param("attributeid") Integer attributeid); -/** - * 根据属性ID查询最新的文章列表 - * 使用JPQL查询语句,筛选状态为已发布(status=1)且指定属性(attributeid)的文章,按创建时间降序排序 - * - * @param attributeid 属性ID,通过@Param注解映射到查询语句中的:attributeid参数 - * @return 返回符合条件Article对象的列表,按创建时间降序排列 - */ + + /** + * 根据属性ID查询最新的文章列表 + * 使用JPQL查询语句,筛选状态为已发布(status=1)且指定属性(attributeid)的文章,按创建时间降序排序 + * + * @param attributeid 属性ID,通过@Param注解映射到查询语句中的:attributeid参数 + * @return 返回符合条件Article对象的列表,按创建时间降序排列 + */ @Query("SELECT a FROM Article a WHERE a.status = 1 AND a.attributeid = :attributeid ORDER BY a.createdAt DESC") List
findLatestByAttribute(@Param("attributeid") Integer attributeid); -/** - * 使用@Modifying注解标记这是一个修改操作,通常用于UPDATE或DELETE语句 - * 使用@Query注解定义自定义的JPQL查询语句 - * 该查询用于将指定文章的浏览量(viewCount)增加1 - * - * @param articleid 文章的唯一标识符,通过@Param注解将方法参数与查询参数绑定 - */ + /** + * 使用@Modifying注解标记这是一个修改操作,通常用于UPDATE或DELETE语句 + * 使用@Query注解定义自定义的JPQL查询语句 + * 该查询用于将指定文章的浏览量(viewCount)增加1 + * + * @param articleid 文章的唯一标识符,通过@Param注解将方法参数与查询参数绑定 + */ @Modifying @Query("UPDATE Article a SET a.viewCount = a.viewCount + 1 WHERE a.articleid = :articleid") void incrementViewCount(@Param("articleid") Integer articleid); - -/** - * 根据浏览量降序查询状态为1的所有文章 - * 该查询使用JPQL语句,从Article实体中选取数据 - * - * @return 返回一个Article对象的列表,按浏览量(viewCount)降序排列 - */ + /** + * 根据浏览量降序查询状态为1的所有文章 + * 该查询使用JPQL语句,从Article实体中选取数据 + * + * @return 返回一个Article对象的列表,按浏览量(viewCount)降序排列 + */ @Query("SELECT a FROM Article a WHERE a.status = 1 ORDER BY a.viewCount DESC") List
findMostViewed(); } diff --git a/src/main/java/com/qf/myafterprojecy/repository/MessageRepository.java b/src/main/java/com/qf/myafterprojecy/repository/MessageRepository.java index 1448714..e63ab16 100644 --- a/src/main/java/com/qf/myafterprojecy/repository/MessageRepository.java +++ b/src/main/java/com/qf/myafterprojecy/repository/MessageRepository.java @@ -3,7 +3,9 @@ package com.qf.myafterprojecy.repository; import com.qf.myafterprojecy.pojo.Message; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import org.springframework.data.jpa.repository.Modifying; import java.util.List; @@ -11,22 +13,57 @@ import java.util.List; public interface MessageRepository extends JpaRepository { // 根据文章ID查询消息 + /** + * 根据文章ID查询消息 + * @param articleid 文章ID + * @return 文章下的消息列表 + */ List findByArticleid(Integer articleid); // 查询所有父消息(回复的根消息) + /** + * 查询所有父消息(回复的根消息) + * @return 根回复消息列表 + */ List findByParentidIsNull(); // 根据父消息ID查询回复 + /** + * 根据父消息ID查询回复 + * @param parentid 父消息ID + * @return 回复消息列表 + */ List findByParentid(Integer parentid); // 根据昵称模糊查询消息 + /** + * 根据昵称模糊查询消息 + * @param nickname 昵称关键词 + * @return 包含关键词的消息列表 + */ List findByNicknameContaining(String nickname); - // 查询指定文章下的所有父消息(根回复) - @Query("SELECT m FROM Message m WHERE m.articleid = ?1 AND m.parentid IS NULL ORDER BY m.createdAt DESC") - List findRootMessagesByArticleId(Integer articleId); - + /** + * 查询指定文章下的所有父消息(根回复) + * @param articleId 文章ID + * @return 根回复消息列表 + */ + @Query("SELECT m FROM Message m WHERE m.articleid = :articleId AND m.parentid IS NULL ORDER BY m.createdAt DESC") + List findRootMessagesByArticleId(@Param("articleId") Integer articleId); + /** + * 点赞数增加 + * @param messageId 消息ID + */ + + @Modifying + @Query("UPDATE Message m SET m.likes = COALESCE(m.likes, 0) + 1 WHERE m.messageid = :messageId") + void incrementLikes(@Param("messageId") Integer messageId); // 统计指定文章的评论数量 - @Query("SELECT COUNT(m) FROM Message m WHERE m.articleid = ?1") - Long countByArticleId(Integer articleId); + /** + * 统计指定文章的评论数量 + * @param articleId 文章ID + * @return 评论数量 + */ + @Query("SELECT COUNT(m) FROM Message m WHERE m.articleid = :articleId") + Long countByArticleId(@Param("articleId") Integer articleId); } diff --git a/src/main/java/com/qf/myafterprojecy/runner/MessageDataChecker.java b/src/main/java/com/qf/myafterprojecy/runner/MessageDataChecker.java index 7bd05f6..8f2000a 100644 --- a/src/main/java/com/qf/myafterprojecy/runner/MessageDataChecker.java +++ b/src/main/java/com/qf/myafterprojecy/runner/MessageDataChecker.java @@ -61,6 +61,7 @@ public class MessageDataChecker implements CommandLineRunner { message1.setCreatedAt(new Date()); message1.setArticleid(1); message1.setParentid(null); // 根评论 + message1.setLikes(0); // 设置点赞数初始值为0 messageRepository.save(message1); // 添加回复 @@ -71,6 +72,7 @@ public class MessageDataChecker implements CommandLineRunner { reply1.setCreatedAt(new Date()); reply1.setArticleid(1); reply1.setParentid(message1.getMessageid()); // 回复第一篇评论 + reply1.setLikes(0); // 设置点赞数初始值为0 messageRepository.save(reply1); // 添加第二篇文章的评论 @@ -81,6 +83,7 @@ public class MessageDataChecker implements CommandLineRunner { message2.setCreatedAt(new Date()); message2.setArticleid(2); message2.setParentid(null); + message2.setLikes(0); // 设置点赞数初始值为0 messageRepository.save(message2); logger.info("成功添加了{}条测试消息数据", messageRepository.count()); diff --git a/src/main/java/com/qf/myafterprojecy/service/ArticleService.java b/src/main/java/com/qf/myafterprojecy/service/ArticleService.java index a5d58a1..d455bc4 100644 --- a/src/main/java/com/qf/myafterprojecy/service/ArticleService.java +++ b/src/main/java/com/qf/myafterprojecy/service/ArticleService.java @@ -23,7 +23,7 @@ public class ArticleService implements IArticleService { @Autowired private ArticleRepository articleRepository; - + @Autowired private CategoryAttributeRepository categoryAttributeRepository; @@ -33,7 +33,7 @@ public class ArticleService implements IArticleService { try { if (id == null || id.isEmpty()) { return ResponseMessage.failure("文章ID不能为空"); - } + } Article article = articleRepository.findById(Integer.parseInt(id)) .orElseThrow(() -> new RuntimeException("文章不存在")); @@ -46,6 +46,7 @@ public class ArticleService implements IArticleService { return ResponseMessage.failure("获取文章失败"); } } + @Override @Transactional(readOnly = true) public ResponseMessage> getArticlesByTitle(String title) { @@ -59,8 +60,8 @@ public class ArticleService implements IArticleService { log.error("根据标题查询文章列表失败: {}", e.getMessage()); return ResponseMessage.failure("根据标题查询文章列表失败"); } - } - + } + @Override @Transactional(readOnly = true) public ResponseMessage> getAllArticles() { @@ -142,7 +143,7 @@ public class ArticleService implements IArticleService { return ResponseMessage.failure("获取分类文章失败"); } } - + @Override @Transactional(readOnly = true) public ResponseMessage> getArticlesByAttribute(Integer attributeid) { @@ -150,12 +151,12 @@ public class ArticleService implements IArticleService { if (attributeid == null || attributeid <= 0) { return ResponseMessage.failure("属性ID无效"); } - + // 验证属性是否存在 if (!categoryAttributeRepository.existsById(attributeid)) { return ResponseMessage.failure("属性不存在"); } - + List
articles = articleRepository.findPublishedByAttribute(attributeid); return ResponseMessage.success(articles); } catch (DataAccessException e) { @@ -163,8 +164,10 @@ public class ArticleService implements IArticleService { return ResponseMessage.failure("获取属性文章失败"); } } + /** * 增加文章浏览量 + * * @param id 文章ID * @return 返回包含更新后文章信息的ResponseMessage对象 */ @@ -174,10 +177,10 @@ public class ArticleService implements IArticleService { try { Article article = articleRepository.findById(id) .orElseThrow(() -> new RuntimeException("文章不存在")); - + article.setViewCount(article.getViewCount() + 1); Article updatedArticle = articleRepository.save(article); - + return ResponseMessage.success(updatedArticle); } catch (Exception e) { log.error("增加文章浏览量失败: {}", e.getMessage()); @@ -192,12 +195,12 @@ public class ArticleService implements IArticleService { if (attributeid == null || attributeid <= 0) { return ResponseMessage.failure("属性ID无效"); } - + // 验证属性是否存在 if (!categoryAttributeRepository.existsById(attributeid)) { return ResponseMessage.failure("属性不存在"); } - + List
articles = articleRepository.findLatestByAttribute(attributeid); return ResponseMessage.success(articles); } catch (DataAccessException e) { diff --git a/src/main/java/com/qf/myafterprojecy/service/CategoryAttributeService.java b/src/main/java/com/qf/myafterprojecy/service/CategoryAttributeService.java index 3b2b206..2e70303 100644 --- a/src/main/java/com/qf/myafterprojecy/service/CategoryAttributeService.java +++ b/src/main/java/com/qf/myafterprojecy/service/CategoryAttributeService.java @@ -29,10 +29,10 @@ public class CategoryAttributeService implements ICategoryAttributeService { if (id == null || id <= 0) { return ResponseMessage.failure("属性ID无效"); } - + Category_attribute attribute = categoryAttributeRepository.findById(id) .orElseThrow(() -> new RuntimeException("分类属性不存在")); - + return ResponseMessage.success(attribute); } catch (Exception e) { log.error("获取分类属性失败: {}", e.getMessage()); @@ -47,7 +47,7 @@ public class CategoryAttributeService implements ICategoryAttributeService { if (categoryId == null || categoryId <= 0) { return ResponseMessage.failure("分类ID无效"); } - + List attributes = categoryAttributeRepository.findByCategoryId(categoryId); return ResponseMessage.success(attributes); } catch (DataAccessException e) { @@ -65,14 +65,14 @@ public class CategoryAttributeService implements ICategoryAttributeService { dto.getCategoryid(), dto.getAttributename())) { return ResponseMessage.failure("该分类下已存在同名属性"); } - + Category_attribute attribute = new Category_attribute(); BeanUtils.copyProperties(dto, attribute); - + Category_attribute savedAttribute = categoryAttributeRepository.save(attribute); - log.info("成功创建分类属性: {}, 分类ID: {}", + log.info("成功创建分类属性: {}, 分类ID: {}", savedAttribute.getAttributename(), savedAttribute.getCategoryid()); - + return ResponseMessage.success(savedAttribute); } catch (DataAccessException e) { log.error("保存分类属性失败: {}", e.getMessage()); @@ -87,24 +87,24 @@ public class CategoryAttributeService implements ICategoryAttributeService { if (id == null || id <= 0) { return ResponseMessage.failure("属性ID无效"); } - + Category_attribute attribute = categoryAttributeRepository.findById(id) .orElseThrow(() -> new RuntimeException("分类属性不存在")); - + // 如果修改了属性名称,检查新名称是否已存在 - if (!attribute.getAttributename().equals(dto.getAttributename()) && + if (!attribute.getAttributename().equals(dto.getAttributename()) && categoryAttributeRepository.existsByCategoryidAndAttributename( dto.getCategoryid(), dto.getAttributename())) { return ResponseMessage.failure("该分类下已存在同名属性"); } - + BeanUtils.copyProperties(dto, attribute); attribute.setAttributeid(id); // 确保ID不变 - + Category_attribute updatedAttribute = categoryAttributeRepository.save(attribute); - log.info("成功更新分类属性: ID={}, 名称={}", + log.info("成功更新分类属性: ID={}, 名称={}", updatedAttribute.getAttributeid(), updatedAttribute.getAttributename()); - + return ResponseMessage.success(updatedAttribute); } catch (Exception e) { log.error("更新分类属性失败: {}", e.getMessage()); @@ -119,14 +119,14 @@ public class CategoryAttributeService implements ICategoryAttributeService { if (id == null || id <= 0) { return ResponseMessage.failure("属性ID无效"); } - + if (!categoryAttributeRepository.existsById(id)) { return ResponseMessage.failure("分类属性不存在"); } - + categoryAttributeRepository.deleteById(id); log.info("成功删除分类属性: ID={}", id); - + return ResponseMessage.success(true); } catch (Exception e) { log.error("删除分类属性失败: {}", e.getMessage()); @@ -141,10 +141,10 @@ public class CategoryAttributeService implements ICategoryAttributeService { if (categoryId == null || categoryId <= 0 || attributeName == null || attributeName.isEmpty()) { return ResponseMessage.failure("参数无效"); } - + boolean exists = categoryAttributeRepository.existsByCategoryidAndAttributename( categoryId, attributeName); - + return ResponseMessage.success(exists); } catch (DataAccessException e) { log.error("检查分类属性是否存在失败: {}", e.getMessage()); diff --git a/src/main/java/com/qf/myafterprojecy/service/CategoryService.java b/src/main/java/com/qf/myafterprojecy/service/CategoryService.java index 535b03b..ed291d2 100644 --- a/src/main/java/com/qf/myafterprojecy/service/CategoryService.java +++ b/src/main/java/com/qf/myafterprojecy/service/CategoryService.java @@ -59,12 +59,12 @@ public class CategoryService implements ICategoryService { if (categoryRepository.existsByTypename(categoryDto.getTypename())) { return ResponseMessage.failure("分类名称已存在"); } - + Category category = new Category(); BeanUtils.copyProperties(categoryDto, category); category.setCreatedAt(LocalDateTime.now()); category.setUpdatedAt(LocalDateTime.now()); - + Category savedCategory = categoryRepository.save(category); return ResponseMessage.success(savedCategory); } catch (DataAccessException e) { @@ -80,19 +80,19 @@ public class CategoryService implements ICategoryService { if (id == null || id <= 0) { return ResponseMessage.failure("分类ID无效"); } - + Category category = categoryRepository.findById(id) .orElseThrow(() -> new RuntimeException("分类不存在")); - + // 如果修改了分类名称,检查新名称是否已存在 - if (!category.getTypename().equals(categoryDto.getTypename()) && + if (!category.getTypename().equals(categoryDto.getTypename()) && categoryRepository.existsByTypename(categoryDto.getTypename())) { return ResponseMessage.failure("分类名称已存在"); } - + BeanUtils.copyProperties(categoryDto, category); category.setUpdatedAt(LocalDateTime.now()); - + Category updatedCategory = categoryRepository.save(category); return ResponseMessage.success(updatedCategory); } catch (Exception e) { @@ -108,11 +108,11 @@ public class CategoryService implements ICategoryService { if (id == null || id <= 0) { return ResponseMessage.failure("分类ID无效"); } - + if (!categoryRepository.existsById(id)) { return ResponseMessage.failure("分类不存在"); } - + // 注意:实际项目中可能需要先检查是否有文章引用该分类 // 如果有,可能需要先处理文章或者禁止删除 categoryRepository.deleteById(id); @@ -130,7 +130,7 @@ public class CategoryService implements ICategoryService { if (typename == null || typename.trim().isEmpty()) { return ResponseMessage.failure("分类名称不能为空"); } - + List categories = categoryRepository.findByTypenameContaining(typename); return ResponseMessage.success(categories); } catch (DataAccessException e) { diff --git a/src/main/java/com/qf/myafterprojecy/service/IArticleService.java b/src/main/java/com/qf/myafterprojecy/service/IArticleService.java index 8d9748a..2236bb8 100644 --- a/src/main/java/com/qf/myafterprojecy/service/IArticleService.java +++ b/src/main/java/com/qf/myafterprojecy/service/IArticleService.java @@ -8,39 +8,72 @@ import java.util.List; public interface IArticleService { ResponseMessage
getArticleById(String id); + ResponseMessage> getAllArticles(); + /** * 根据标题查询文章列表 + * * @param title 文章标题的一部分,用于模糊查询 * @return 返回符合查询条件的文章列表 */ ResponseMessage> getArticlesByTitle(String title); + + /** + * 创建新文章 + * 仅限AUTHOR角色用户访问 + * + * @param articleDto 包含文章数据的DTO对象 + * @return 返回包含新创建文章信息的ResponseMessage对象 + */ ResponseMessage
saveArticle(ArticleDto articleDto); + + /** + * 更新指定ID的文章 + * + * @param id 文章ID + * @param articleDto 包含更新信息的ArticleDto对象 + * @return 返回包含操作结果的ResponseMessage对象 + */ ResponseMessage
updateArticle(Integer id, ArticleDto articleDto); + + /** + * 删除指定ID的文章 + * + * @param id 文章ID + * @return 返回包含操作结果的ResponseMessage对象 + */ ResponseMessage
deleteArticle(Integer id); + /** * 根据分类ID查询文章列表(兼容旧接口) + * * @param typeid 分类ID * @return 返回符合查询条件的文章列表 */ ResponseMessage> getArticlesByCategory(Integer typeid); - + /** * 根据属性ID查询文章列表 + * * @param attributeid 属性ID * @return 返回符合查询条件的文章列表 */ ResponseMessage> getArticlesByAttribute(Integer attributeid); - + /** * 根据属性ID查询最新文章列表 + * * @param attributeid 属性ID * @return 返回符合查询条件的最新文章列表 */ ResponseMessage> getLatestArticlesByAttribute(Integer attributeid); + ResponseMessage> getMostViewedArticles(); + /** * 增加文章浏览量 + * * @param id 文章ID * @return 返回包含更新后文章信息的ResponseMessage对象 */ diff --git a/src/main/java/com/qf/myafterprojecy/service/IMessageService.java b/src/main/java/com/qf/myafterprojecy/service/IMessageService.java index 8b436e3..646b100 100644 --- a/src/main/java/com/qf/myafterprojecy/service/IMessageService.java +++ b/src/main/java/com/qf/myafterprojecy/service/IMessageService.java @@ -7,62 +7,84 @@ import com.qf.myafterprojecy.pojo.dto.MessageDto; import java.util.List; public interface IMessageService { -/** - * 获取所有消息的方法 - * @return 返回一个ResponseMessage对象,其中包含一个可迭代的Message集合 - * ResponseMessage是响应消息的包装类,Iterable表示可迭代的消息集合 - */ + /** + * 获取所有消息的方法 + * + * @return 返回一个ResponseMessage对象,其中包含一个可迭代的Message集合 + * ResponseMessage是响应消息的包装类,Iterable表示可迭代的消息集合 + */ ResponseMessage> getAllMessages(); -/** - * 根据消息ID获取消息的方法 - * @param id 消息的唯一标识符 - * @return ResponseMessage 包含消息的响应对象,其中Message为消息的具体内容 - */ + + /** + * 根据消息ID获取消息的方法 + * + * @param id 消息的唯一标识符 + * @return ResponseMessage 包含消息的响应对象,其中Message为消息的具体内容 + */ ResponseMessage getMessageById(Integer id); -/** - * 保存消息的方法 - * @param message 消息数据传输对象,包含需要保存的消息信息 - * @return ResponseMessage 返回一个响应消息对象,包含操作结果和保存后的消息信息 - */ + + /** + * 保存消息的方法 + * + * @param message 消息数据传输对象,包含需要保存的消息信息 + * @return ResponseMessage 返回一个响应消息对象,包含操作结果和保存后的消息信息 + */ ResponseMessage saveMessage(MessageDto message); -/** - * 根据消息ID删除消息的方法 - * @param id 要删除的消息ID - * @return ResponseMessage 包含操作结果的响应消息,其中泛型Message表示被删除的消息内容 - */ + + /** + * 根据消息ID删除消息的方法 + * + * @param id 要删除的消息ID + * @return ResponseMessage 包含操作结果的响应消息,其中泛型Message表示被删除的消息内容 + */ ResponseMessage deleteMessage(Integer id); - + + /** + * 增加消息的点赞数 + * + * @param id 消息ID + * @return 包含操作结果的响应消息,其中泛型Message表示操作后的消息内容 + */ + ResponseMessage likeMessage(Integer id); + // 新增方法 /** * 根据文章ID查询消息 + * * @param articleId 文章ID * @return 消息列表 */ ResponseMessage> getMessagesByArticleId(Integer articleId); - + /** * 查询所有父消息(根回复) + * * @return 父消息列表 */ ResponseMessage> getRootMessages(); - + /** * 根据父消息ID查询回复 + * * @param parentId 父消息ID * @return 回复消息列表 */ ResponseMessage> getRepliesByParentId(Integer parentId); - + /** * 根据昵称模糊查询消息 + * * @param nickname 昵称 * @return 匹配的消息列表 */ ResponseMessage> searchMessagesByNickname(String nickname); - //删除所有评论 + + // 删除所有评论 ResponseMessage deleteAllMessages(); + /** * 获取指定文章的评论数量 + * * @param articleId 文章ID * @return 评论数量 */ diff --git a/src/main/java/com/qf/myafterprojecy/service/MessageService.java b/src/main/java/com/qf/myafterprojecy/service/MessageService.java index d315532..3ca2422 100644 --- a/src/main/java/com/qf/myafterprojecy/service/MessageService.java +++ b/src/main/java/com/qf/myafterprojecy/service/MessageService.java @@ -16,11 +16,13 @@ import java.util.Date; import java.util.List; import java.util.Optional; +import org.springframework.transaction.annotation.Transactional; + @Service public class MessageService implements IMessageService { - + private static final Logger logger = LoggerFactory.getLogger(MessageService.class); - + @Autowired private MessageRepository messageRepository; @@ -42,7 +44,7 @@ public class MessageService implements IMessageService { logger.warn("获取消息时ID无效: {}", id); return ResponseMessage.failure("消息ID无效"); } - + try { logger.info("根据ID查询消息: {}", id); Optional messageOptional = messageRepository.findById(id); @@ -59,31 +61,33 @@ public class MessageService implements IMessageService { } @Override + @Transactional(rollbackFor = Exception.class) public ResponseMessage saveMessage(MessageDto messageDto) { // 参数校验 if (messageDto == null) { logger.warn("保存消息时参数为空"); throw new IllegalArgumentException("MessageDto cannot be null"); } - + // 业务逻辑校验 if (StringUtils.isEmpty(messageDto.getContent())) { logger.warn("保存消息时内容为空"); throw new IllegalArgumentException("Message content cannot be empty"); } - + if (StringUtils.isEmpty(messageDto.getNickname())) { logger.warn("保存消息时昵称为空"); throw new IllegalArgumentException("Message nickname cannot be empty"); } - + // 调用Repository保存数据 try { logger.info("保存消息: {}", messageDto.getNickname()); Message message = new Message(); BeanUtils.copyProperties(messageDto, message); message.setCreatedAt(new Date()); // 设置创建时间 - + message.setLikes(0); // 设置点赞数初始值为0 + // 如果是回复,确保parentid有效 if (messageDto.getParentid() != null && messageDto.getParentid() > 0) { if (!messageRepository.existsById(messageDto.getParentid())) { @@ -91,7 +95,7 @@ public class MessageService implements IMessageService { return ResponseMessage.failure("回复的父消息不存在"); } } - + Message savedMessage = messageRepository.save(message); logger.info("消息保存成功: {}", savedMessage.getMessageid()); return ResponseMessage.success(savedMessage, "保存成功", true); @@ -102,12 +106,13 @@ public class MessageService implements IMessageService { } @Override + @Transactional(rollbackFor = Exception.class) public ResponseMessage deleteMessage(Integer id) { if (id == null || id <= 0) { logger.warn("删除消息时ID无效: {}", id); return ResponseMessage.failure("消息ID无效"); } - + try { logger.info("删除消息: {}", id); if (messageRepository.existsById(id)) { @@ -136,7 +141,7 @@ public class MessageService implements IMessageService { logger.warn("根据文章ID查询消息时ID无效: {}", articleId); return ResponseMessage.failure("文章ID无效"); } - + try { logger.info("根据文章ID查询消息: {}", articleId); List messages = messageRepository.findByArticleid(articleId); @@ -175,13 +180,32 @@ public class MessageService implements IMessageService { } } + // 点赞数增加 + @Override + @Transactional(rollbackFor = Exception.class) + public ResponseMessage likeMessage(Integer id) { + if (id == null || id <= 0) { + logger.warn("点赞消息时ID无效: {}", id); + return ResponseMessage.failure("消息ID无效"); + } + try { + logger.info("点赞消息: {}", id); + messageRepository.incrementLikes(id); + Message likedMessage = messageRepository.findById(id).orElse(null); + return ResponseMessage.success(likedMessage, "点赞成功", true); + } catch (DataAccessException e) { + logger.error("点赞消息失败: {}", id, e); + return ResponseMessage.failure("点赞消息失败:" + e.getMessage()); + } + } + @Override public ResponseMessage> searchMessagesByNickname(String nickname) { if (StringUtils.isEmpty(nickname)) { logger.warn("根据昵称查询消息时昵称为空"); return ResponseMessage.failure("昵称不能为空"); } - + try { logger.info("根据昵称查询消息: {}", nickname); List messages = messageRepository.findByNicknameContaining(nickname); @@ -191,8 +215,10 @@ public class MessageService implements IMessageService { return ResponseMessage.failure("查询消息失败:" + e.getMessage()); } } - //删除所有评论 + + // 删除所有评论 @Override + @Transactional(rollbackFor = Exception.class) public ResponseMessage deleteAllMessages() { try { logger.info("删除所有消息"); @@ -203,13 +229,14 @@ public class MessageService implements IMessageService { return ResponseMessage.failure("删除消息失败:" + e.getMessage()); } } + @Override public ResponseMessage getMessageCountByArticleId(Integer articleId) { if (articleId == null || articleId <= 0) { logger.warn("获取文章评论数量时ID无效: {}", articleId); return ResponseMessage.failure("文章ID无效"); } - + try { logger.info("获取文章评论数量: {}", articleId); Long count = messageRepository.countByArticleId(articleId);