1

当我用它持久化一个实体时,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 归档这个?

4

1 回答 1

1

请检查@Id实体中的配置。请确保您已正确定义属性@GeneratedValueId该属性在区分insertupdate操作中起着关键作用。

于 2012-10-22T16:04:12.193 回答