Java 현재 시간 + 랜덤 문자로 고유값 만들기 - with apache commons library (Java Random String)
Apache Commons의 RandomStringUtils 클래스를 이용하여 랜덤 문자열을 만들 수 있다.
RandomStringUtils 을 사용하기 위해서는 commons-lang3이 필요하다.
build.gradle 에 아래 항목을 추가한다.
implementation 'org.apache.commons:commons-lang3:3.0'
import org.apache.commons.lang3.RandomStringUtils;
RandomStringUtils.randomAlphabetic(4);
메서드 인자로 생성할 random String의 length를 넘겨주면 된다.
Custom JPA Id Generator
이를 응용한 현재 시간 + 랜덤 문자로 고유한 Id 값을 만들어 낼 수 있다.
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import org.apache.commons.lang3.RandomStringUtils;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;
public class OrderIdGenerator implements IdentifierGenerator {
@Override
public Serializable generate(SharedSessionContractImplementor session, Object object) throws HibernateException {
String currentDateTime = LocalDateTime.now()
.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
String randomId = RandomStringUtils.randomAlphabetic(4);
return currentDateTime + "-ysk-" + randomId;
}
}
'Java > Java' 카테고리의 다른 글
Java CompletableFuture (0) | 2023.04.23 |
---|---|
Java Future, Callable, Executor Concurrent 프로그래밍 (0) | 2023.04.23 |
Java Papago 번역 API 사용 (0) | 2023.01.26 |
Graceful Shutdown - JVM, Java, SpringBoot (3) | 2023.01.06 |
Lambda 표현식 (0) | 2023.01.04 |