单张用户表,禁止重名,因此会在新增用户和改名时校验一下。
因此有了下面的代码,在 save 操作之前进行一下 findByName 查询操作。如果存在同名用户,应该在下一个判断语句处抛出异常。而实际上在 findByName 这一句就抛出异常了。
查看具体的 sql 执行结果发现,在执行 findByName 时,Hibernate 先发送了一条 update 语句,直接改掉了对应记录。
网上查了一下,似乎是缓存的问题,但并不熟悉 Hibernate ,也没有显式配置过缓存,想问下如何禁止这个行为?(就是不让它在查询的时候自己 update )
OpenJDK 11
Spring Boot 2.5.3
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.