uid-generator主键适用于oracle数据库

如何在项目中使用uid-generator主键的生成方式

第一步:建表

CREATE TABLE WORKER_NODE
(
ID number(9) NOT NULL ,
HOST_NAME VARCHAR(64) NOT NULL ,
PORT VARCHAR(64) NOT NULL ,
TYPE INT NOT NULL ,
LAUNCH_DATE DATE ,
MODIFIED TIMESTAMP NOT NULL ,
CREATED TIMESTAMP NOT NULL,
PRIMARY KEY(ID)
);
–创建同义词,自已更改所属用户,这里用的his_ext用户(可以不使用同义词)

create or replace public synonym WORKER_NODE for his_ext.WORKER_NODE
– 创建序列 WorkerNodeId –
create sequence WorkerNodeId_Seq
increment by 1
start with 1
minvalue 1
maxvalue 999999999;
创建触发器.让ID列自增

create or replace trigger WORKER_NODE_trigger before
insert on WORKER_NODE for each row
when (new.ID is null)
begin
select WorkerNodeId_Seq.nextval into:new.ID from dual;
end;

第二步:Maven引用

    <dependency>
        <groupId>com.github.wujun234</groupId>
        <artifactId>uid-generator-spring-boot-starter</artifactId>
        <version>1.0.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
            </exclusion>
            <exclusion>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>

第三部:开始使用
UidGenerator接口提供了 UID 生成和解析的方法,提供了两种实现: DefaultUidGenerator实时生成
CachedUidGenerator 生成一次id之后,按序列号+1生成一批id,缓存,供之后请求
如对UID生成性能有要求, 请使用CachedUidGenerator

@Resource
private UidGenerator uidGenerator;

@Test
public void testSerialGenerate(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!对于将 uid-generator 整合到 JPA 中,您可以按照以下步骤操作: 1. 首先,您需要在项目的依赖中添加 uid-generator 的相关依赖。您可以在 Maven 或 Gradle 中添加以下依赖: Maven: ```xml <dependency> <groupId>com.baidu.fsg</groupId> <artifactId>uid-generator</artifactId> <version>1.4.0</version> </dependency> ``` Gradle: ```groovy implementation 'com.baidu.fsg:uid-generator:1.4.0' ``` 2. 在您的 JPA 实体类中,添加一个用于存储生成的 UID 的字段。例如,您可以在实体类的属性中添加一个名为 "uid" 的字段。 3. 创建一个自定义的 JPA 应用监听器(EntityListener),用于在实体保存之前生成 UID,并将其设置到实体的 uid 字段中。 ```java import com.baidu.fsg.uid.UidGenerator; import org.springframework.beans.factory.annotation.Autowired; import javax.persistence.PrePersist; public class UidEntityListener { @Autowired private UidGenerator uidGenerator; @PrePersist public void generateUid(Object entity) { // 生成 UID long uid = uidGenerator.getUID(); // 设置到实体的 uid 字段中 ((YourEntityClass) entity).setUid(uid); } } ``` 4. 在您的实体类中,使用 @EntityListeners 注解将自定义的监听器应用到实体上。 ```java import javax.persistence.*; @Entity @Table(name = "your_entity_table") @EntityListeners(UidEntityListener.class) public class YourEntityClass { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "uid") private long uid; // Getters and setters // ... } ``` 5. 现在,当您保存实体时,JPA 将自动调用监听器中的 generateUid 方法,生成 UID 并将其设置到实体的 uid 字段中。 这样,您就成功地将 uid-generator 整合到了 JPA 中。每次保存实体时,都会自动生成并分配一个唯一的 UID。 希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值