将OptimisticLockPolicy更改为使用本地时间
我正在使用Eclipselink JPA,我有一个带有@Version和乐观锁定注解的时间戳字段的实体。将OptimisticLockPolicy更改为使用本地时间
默认情况下,这会将entitymanager设置为使用数据库时间,因此,如果必须执行批量更新,则它无法正常工作,因为每次要插入时都会查询数据库的时间。
如何更改TimestampLockingPolicy以使用LOCAL_TIME?
该类org.eclipse.persistence.descriptors.TimestampLockingPolicy.class有一个公共方法useLocalTime(),但我不知道如何使用或从哪里应该叫它。
回答:
找到了答案:
首先让我们创建一个DescriptorCustomizer
public class LocalDateTimeCustomizer implements DescriptorCustomizer { @Override
public void customize(ClassDescriptor descriptor) throws Exception {
OptimisticLockingPolicy policy = descriptor.getOptimisticLockingPolicy();
if (policy instanceof TimestampLockingPolicy) {
TimestampLockingPolicy p = (TimestampLockingPolicy) policy;
p.useLocalTime();
}
}
}
则标注具有与
@Customizer(LocalDateTimeCustomizer.class)
的@Version实体以上是 将OptimisticLockPolicy更改为使用本地时间 的全部内容, 来源链接: utcz.com/qa/267071.html