博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JPA乐观锁@Version在MySQL、MongoDB、Solr中的配置及注意
阅读量:4043 次
发布时间:2019-05-24

本文共 1624 字,大约阅读时间需要 5 分钟。

JPA的乐观锁@Version在不同的DB中,Version类的包位置不一样,如果配置错误了,则不起乐观锁的作用,程序不会报错。

一、MySQL

1.Version引入的javax.persistence.Version

2.数值可以使用java.sql.TimeStamp,这样java中不使用赋值,修改时直接采用MySQL中的时间戳,可以当修改时间用。

@JsonFormat加上Pattern变可以显示想要的时间格式

具体配置如下:

import lombok.*;import javax.persistence.*;import java.sql.Timestamp;/** * Created by UI03 on 2017/7/17. * Version: 1.0.0 */@Data@NoArgsConstructor@AllArgsConstructor@ToString(callSuper = true)@Entity@Table(name = "act")public class AccountEntity{    /**     * 用户ID     */    @Column(name = "uid")    private Long userId;    /**     * 创建时间     */    @Column(name = "tsct")    private long createTimestamp;    /**     * 乐观锁 version     * JsonFormat前端展示转化     * 例子 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")     */    @Column(name = "ver")    @Version    private Timestamp version ;}

二、MongoDB、Solr

1.Version引入的org.springframework.data.annotation.Version

2.数值不可以使用java.sql.TimeStamp(不起作用),可以使用long类型,修改后自动加1,这样修改时间需要单独字段记录。

具体配置如下:

import lombok.Data;import org.springframework.data.annotation.Id;import org.springframework.data.annotation.Version;import org.springframework.data.mongodb.core.mapping.Document;import org.springframework.data.mongodb.core.mapping.Field;/** * Created by UI03 on 2018/1/8. */@Data@Document(collection = "uss")public class UserStudyInfoEntity {    /**     * 用户ID     */    @Field("uid")    private long userId ;     /**     * 创建时间     */    @Field("tsct")    private long createTimeStamp ;    /**     * 修改时间     */    @Field("tsup")    private long updateTimeStamp ;    /**     * version 乐观锁     */    @Field("ver")    @Version    private long version ;}

转载地址:http://beadi.baihongyu.com/

你可能感兴趣的文章
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
mysql:sql alter database修改数据库字符集
查看>>
mysql:sql truncate (清除表数据)
查看>>
yuv to rgb 转换失败呀。天呀。谁来帮帮我呀。
查看>>
yuv420 format
查看>>
YUV420只绘制Y通道
查看>>
yuv420 还原为RGB图像
查看>>
LED恒流驱动芯片
查看>>
驱动TFT要SDRAM做为显示缓存
查看>>
使用file查看可执行文件的平台性,x86 or arm ?
查看>>
qt5 everywhere 编译summary
查看>>
qt5 everywhere编译完成后,找不到qmake
查看>>
qt 创建异形窗体
查看>>
可重入函数与不可重入函数
查看>>
简单Linux C线程池
查看>>
内存池
查看>>
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>