我有一个简单的控制器方法,在其中创建一个新对象Car
,然后将其名称设置为Audi
:
@GetMapping(value = "/resource")
public ResponseEntity visit() {
Car car = carRepo.save(new Car("VolksWagen")); // Car should be managed now?
car.setName("Audi"); // <-- has no effect on database state
return ResponseEntity.ok().build();
}
在数据库中,它永远不会变成Audi
,而是保持VolksWagen
.
为什么会这样?对于持久性上下文,新创建的不Car
应该处于托管状态吗?
注意:如果我添加@Transactional
注释,它会起作用。我认为如果启用 OSIV 就足够了。我对 OSIV 和 有什么误解@Transactional
?