【发布时间】:2016-03-29 23:35:15
【问题描述】:
在 Spring Boot 1.3.0 应用程序中,我将 Spring Data JPA 与 Hibernate 结合使用。
我有这个服务方式:
@Override
@Transactional(readOnly = false)
public BookDto updateBook(BookDto bookDto) {
BookId id = new BookId(bookDto.getId());
if (!exists(id)) {
throw new EntityNotFoundException("Unable to find a book with id " + bookDto.getId());
}
return convertToDto(bookRepository.save(bookDto.convertToBook()));
}
在我的实体中,我有一个 @Version 字段:
@Version
private long version;
(带有 getter 和 setter)而且我的 DTO 中也有这个(我的 DTO 上没有 @Version 注释)。
从bookRepository.save() 调用返回的“Book”实体仍然具有version = 0,而不是预期的1。当我之后在存储库上执行findAll 时,版本更新得很好。这可能是什么原因?
【问题讨论】:
标签: spring hibernate jpa spring-data