当我使用 SimpleJpaRepository#save()
持久化实体时,它不会修改它。例如。它不会设置实体的新 ID。
除此之外,一切正常。该实体正在被持久化并被赋予一个 id。如果我从数据库中读取它,我可以看到 id。这是正常行为吗?我知道 #save 方法返回持久化实体,但我更希望它修改给定实体。有没有办法配置这个?
谢谢
--编辑
假设这就是我所做的:
User user = new User();
// do something with user
userRepository.save(user);
然后user
保持不变。对象已写入数据库,但用户未成为托管对象。此外,saveAndFlush(user)
不会导致不同的行为。我能做的是user = userRepository.save(user)
。在这种情况下,用户成为托管实例。但在 Hibernate 中,我习惯于仅保存对象,并且我提交的对象将被托管。有没有办法用 JPA 来归档这个?
最佳答案
请检查实体中的@Id
配置。请确保您已在 Id
属性上正确定义 @GenerateValue
。此属性在区分 insert
和 update
操作方面发挥着关键作用。
关于java - SimpleJpaRepository 不修改持久化实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13014910/