SimpleJpaRepository不会修改持久化实体

时间:2012-10-22 15:42:19

标签: java spring hibernate jpa

当我持有SimpleJpaRepository#save()的实体时,它不会修改它。例如。它不会设置实体的新ID。

除此之外,一切正常。该实体被持久化并被赋予身份。如果我从数据库中读取它,我可以看到id。这是正常的行为吗?我知道#save方法返回持久化实体但我更喜欢它修改给定实体。有没有办法配置这个?

由于

- 编辑

让我们假设这就是我所做的:

User user = new User();
// do something with user

userRepository.save(user);

然后user保持不变。对象写入数据库但用户不会被管理。 saveAndFlush(user)也不会导致不同的行为。我能做的是user = userRepository.save(user)。在这种情况下,用户成为托管实例。但是从Hibernate我习惯只保存对象,我提交的对象就被管理了。有没有办法用JPA来实现这个目标?

1 个答案:

答案 0 :(得分:1)

请检查实体中的@Id配置。请确保您在@GeneratedValue属性上正确定义了Id。此属性在区分insertupdate操作方面起着关键作用。

相关问题