(1)目前jeesite内置的解决方案,不包含int自增
正常 spring boot 自 2.x系列 ,是可以支持自增的。但是JeeSite该部分源码已经闭源,所以要想实现,只能自行设计处理该类问题。 下面介绍实现思路!
在实体类上添加
@GeneratedValue(strategy = GenerationType.IDENTITY)这个注解即可。
复制代码
JeeSite 4.x系列 继承了Spring Boot2.x 系列内JPA规范,并主要考虑到分布式场景,所以生成的ID是属于uuid。
@Ivy
@GeneratedValue(strategy = GenerationType.IDENTITY,generator = "select uuid()")
private String id;
复制代码
(2)要自己实现咋处理,UUID,我们会调用一个方法来动态设置主键,自增就不行了? 其实有很多种方法。
比如在数据库存建立一张表,专门用来存放id当前最大值的,然后每次插入数据时获取,并加一。这样方法很笨,但是不建议,性能差!简单粗暴!
当然也可以来个配置文件,配置文件记录表——id最大值,这样最多是调用时IO阻塞,或者容易大并发时出现IO异常。
利用redis?这个有点奢侈,估计我说了,也会有人骂我。。。不过性能确实好,为了一个自增都用到Redis了。。。 未来会考虑id 利用某种模式 动态支持常用四类 主键id生成策略。 这个jeecg我看有实现,不过模式也不咋好。