Sequence主键

主键生成策略必须使用INPUT

支持父类定义@KeySequence子类继承使用

支持主键类型指定(3.3.0开始自动识别主键类型)

内置支持:

  • DB2KeyGenerator
  • H2KeyGenerator
  • KingbaseKeyGenerator
  • OracleKeyGenerator
  • PostgreKeyGenerator

如果内置支持不满足你的需求,可实现IKeyGenerator接口来进行扩展.

举个栗子

  1. @KeySequence(value = "SEQ_ORACLE_STRING_KEY", clazz = String.class)
  2. public class YourEntity {
  3. @TableId(value = "ID_STR", type = IdType.INPUT)
  4. private String idStr;
  5. }

Spring-Boot

方式一:使用配置类

  1. @Bean
  2. public IKeyGenerator keyGenerator() {
  3. return new H2KeyGenerator();
  4. }

方式二:通过MybatisPlusPropertiesCustomizer自定义

  1. @Bean
  2. public MybatisPlusPropertiesCustomizer plusPropertiesCustomizer() {
  3. return plusProperties -> plusProperties.getGlobalConfig().getDbConfig().setKeyGenerator(new H2KeyGenerator());
  4. }

Spring

方式一: XML配置

  1. <bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
  2. <property name="dbConfig" ref="dbConfig"/>
  3. </bean>
  4. <bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
  5. <property name="keyGenerator" ref="keyGenerator"/>
  6. </bean>
  7. <bean id="keyGenerator" class="com.baomidou.mybatisplus.extension.incrementer.H2KeyGenerator"/>

方式二:注解配置

  1. @Bean
  2. public GlobalConfig globalConfig() {
  3. GlobalConfig conf = new GlobalConfig();
  4. conf.setDbConfig(new GlobalConfig.DbConfig().setKeyGenerator(new H2KeyGenerator()));
  5. return conf;
  6. }