Spring JPA / Hibernate - 未修改对象时的更新方式

时间:2017-05-27 22:26:51

标签: spring hibernate spring-data spring-data-jpa

我无法更新实体,因为没有更改,但我需要更新其列已更新 o用作跟踪列。在更新实体列下面,我希望自动更新,即使没有变化。

实体

@Column( name = "UPDATED" , nullable = true )
@DateTimeFormat( iso = ISO.DATE_TIME )
private LocalDateTime updated;

@PreUpdate
public void updatedEntry(){
    this.updated = LocalDateTime.now();
}

Spring JPA存储库

@Repository
public interface ProductRepository extends PagingAndSortingRepository<Product, BigDecimal>
{}

下面的代码是我更新值的地方,虽然有时候对象不会被修改,因为检索的值是相同的。

product.setBarcode( clfProduct.getBarcode() );
product.setTaxcode( clfProduct.getTaxcode() );
product.setPrice( clfProduct.getPrice() );
product.setMinOrder( clfProduct.getMinOrder() );
product.setMsrpPrice( clfProduct.getMsrpPrice() );
product.setStock( stock );

productRepository.save(product);

1 个答案:

答案 0 :(得分:1)

只需将更新后的列设为您更新的普通列,而不是使用@PreUpdate注释。