有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MySQL插入未执行的行

我有一个Java/JPA/Hibernate应用程序,它有一个MySQL后端。数据库的一部分存储从多个来源导入的产品数据,因此我们有导入记录和导入历史记录。进口记录显示,我们当天从该来源进口了一定数量的产品,进口历史记录将进口与该进口期间进口的产品联系起来。这是因为该产品可能出现在多个导入中,因此它会保存它出现的位置和时间的历史记录

purchased_product -< purchased_product_import_history >- import

最近,当我们创造一个新的产品记录时,我们注意到了一些非常奇怪的事情。它按预期创建新产品、导入和导入历史记录,但随后创建另一个指向完全不同(已存在)导入的历史记录条目。此伪导入记录始终相同(始终具有ID 188)

  • 我们假设代码中有指向188的东西:没有
  • 我们已经在创建新产品的java代码中调试了该操作。仅生成正确的导入历史记录
  • 伪造的协会似乎马上就成立了
  • 我们已经打开了SQL日志记录(hibernate SqlStatementLogger),只有一个insert语句并检查输入的值,它显示的是正确的导入ID,而不是伪造的ID
  • 数据库中没有触发器或存储过程
  • 在添加产品的过程中,我们打开了mysql日志,查看了整个日志,只有1条“insert into purchased_product_import_history”语句,没有看到值188

我们现在可以合理地确定,这不是Java代码,MySQL中的某些东西导致了插入,但是我们不知道这是从哪里来的。有人能帮忙吗

Java8,MySQL 5.6.38

提前谢谢


共 (0) 个答案