All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.data.identifier.StringSequenceIdentifier Maven / Gradle / Ivy

package com.moon.data.identifier;

import com.moon.data.IdentifierGenerator;

/**
 * @author moonsky
 */
public class StringSequenceIdentifier implements IdentifierGenerator {

    private final LongSequenceIdentifier identifier;

    public StringSequenceIdentifier() {
        this.identifier = new LongSequenceIdentifier();
    }

    /**
     * 有参构造器
     *
     * @param workerId     工作机器 ID
     * @param datacenterId 序列号
     */
    public StringSequenceIdentifier(long workerId, long datacenterId) {
        this.identifier = LongSequenceIdentifier.of(workerId, datacenterId);
    }

    /**
     * 生成 ID
     *
     * @param entity 数据实体
     * @param o      元数据,在 JPA 中,通常是指{@link org.hibernate.engine.spi.SharedSessionContractImplementor}
     *
     * @return id
     */
    @Override
    public String generateId(Object entity, Object o) {
        return originGenerateId(entity, o).toString();
    }

    protected final Long originGenerateId(Object e, Object i) {
        return identifier.originGenerateId(e, i);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy