美文网首页
Spring boot JPA CascadeType.PERS

Spring boot JPA CascadeType.PERS

作者: 大继 | 来源:发表于2019-04-19 05:11 被阅读0次

目的

为了统计初始化统计,实体采用 JPA CascadeType.PERSIST,CascadeType.REMOVE 新增和删除时关联,去除统计在业务中带事务对 统计实体的影响。

问题

但是 这个鬼CascadeType.PERSIST的实现比较诡异,无法初始化数据。

  1. 无法带入id 源码会认为你不是一个新的实体,真鸡儿难受,不知道hibernate实现时怎么想的。
    2.添加 @GeneratedValue(generator = "jpa-uuid") 使用自动生成id 后可以被识别为新增实体,但是无法带入默认数据,让我及其难受。

解决方法

只能完全按照hibernate 的设计思路去弄了,我也很无奈。在统计表加上默认值:

@Entity
@Table(name = "activity_statistic")
@GenericGenerator(name = "jpa-uuid", strategy = "uuid")
public class ActivityStatistic {

    @Id
    @Column(length = 37)
    @GeneratedValue(generator = "jpa-uuid")
    private String id;

    @Column
    private Integer participatedNumber = 0;

    @Column
    private Integer lockedNumber = 0;

    @Column
    private Date    updateTime = new Date();

    @Column
    private Date    createTime = new Date();

    /**
      getter....setter ....
    **/
}

如果有更好的方法

请一定要给我留言,谢谢

总结

得到了jpa 的好处,也失去了部分自由。怀念mybatis 。

参考

https://www.jianshu.com/p/2431c6e3760d

相关文章

网友评论

      本文标题:Spring boot JPA CascadeType.PERS

      本文链接:https://www.haomeiwen.com/subject/xxdfgqtx.html