我将SpringJPARepository与hibernate一起使用,并且对实体更新有一个问题。我通过传递单个实体来调用jparepository.save(entity),但在跟踪日志中,我也可以看到针对数据库中其他行发出的更新语句。在调用save之前,我有一个findAll并且某些实体的值正在更改。但是我只传递了一个要保存的实体,但是仍然保存了所有更新的实体。您能提供有关此信息吗?
从数据库加载实体时,该实体就是“托管实体”。如果更改“托管实体”(并在以后提交事务),则无需显式保存它们。(这是“托管”的意思。)
但是Hibernate不会立即更新数据库,而是将等待直到:
EntityManager.flush
这就是您观察到的: