1.基本功能 1.基本功能
主键使用雪花策略生成。
2.配置方法 2.配置方法
配置
1.如果项目组需要使用snowFlakeGenerator 19位数字生成器,则拷贝19_BIGINT\id-generator.xml文件覆盖或者拷贝到 src\resources\context下。(ps:拷贝文件可以从升级包V3.22.C.0中的参考配置文件夹中取,也可参考如下代码)。
其中id-generator.xm代码文件为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="numberIncIdentitiesHolder" class="com.gillion.intinc.service.NumberIncIdentitiesHolder">
<property name="jdbcTemplate">
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</property>
<property name="defaultRegionSize" value="1000"/>
<property name="dbType" value="MYSQL"/>
</bean>
<bean id="uuidGenerator" class="com.gillion.persist.generator.UUIDGenerator"></bean>
<bean id="numberIncGenerator" class="com.gillion.persist.generator.NumberIncGenerator">
<property name="defaultPKCodeMapping" value="DEFAULT_PK_CODE"/>
<property name="numberIncIdentitiesHolder" ref="numberIncIdentitiesHolder"/>
</bean>
<!-- 19位 snowFlakeGenerator bigint型主键生成器 start-->
<bean id="nodeGetter" class="com.gillion.persist.generator.DbPersistNodeGetter">
<property name="app" value="common"/>
<property name="jdbcTemplate">
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
</property>
</bean>
<bean id="snowFlakeGenerator" class="com.gillion.persist.generator.SnowFlakeGenerator" >
<property name="nodeGetter" ref="nodeGetter" />
</bean>
<!-- 19位 snowFlakeGenerator bigint型主键生成器 end-->
</beans>
2.然后检查src\resources\context\applicationContext.xml修改如下
<!-- id生成器 -->
<import resource="classpath:context/id-generator.xml"/>
3.执行 Generator\dbsceript\app_nodes_mysql.sql 脚本。目前只支持mysql 、其他数据库还不支持。脚本文件如下(ps:拷贝文件可以从升级包V3.22.C.0中的参考配置文件夹中取,也可参考如下代码)。
CREATE TABLE `app_nodes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_name` varchar(20) DEFAULT NULL,
`node_name` varchar(50) DEFAULT NULL,
`node_num` int(4) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `node_unique` (`app_name`,`node_name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2348 DEFAULT CHARSET=utf8;
4.对象建模–业务对象–可视化布局-选中左边的数据源,在右边的【属性定义】页签找到主键字段,主键字段必须为长整型,且长度为19。
5.对象建模–业务对象–可视化布局-点击【业务对象编辑】按钮,在弹窗页里面-的【ID生成器名称】字段中配置【snowFlakeGenerator】即可。
6.如果架构使用EC3【目前仅象屿项目】,需在视图配置那里配置内容,配置项类型:【使用哪种JAVA后端架构】、配置内容:【EC3】。
代码
在实体类中主键字段生成如下注解
/** 货品ID */
@Id
@GeneratedValue(generator = "idGenerator")
@Generator("snowFlakeGenerator")
@JsonSerialize(using = Long2String.class)
@Column(name = "TEST_CASE_209_ID", nullable = false, length = 19, precision = 19, scale = 0)
private Long testCase209Id;
3.常用扩展 3.常用扩展
暂无
4.版本更新 4.版本更新
7.4.1,2021.03.12
优化
- 雪花主键策略支持直接在可视化上配置。