HibernateUtils.java
package no.nav.data.common.utils;
import no.nav.data.common.exceptions.TechnicalException;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.proxy.LazyInitializer;
import org.springframework.data.util.ReflectionUtils;
import java.util.UUID;
public final class HibernateUtils {
private HibernateUtils() {
}
/**
* Get id without loading the entity
*/
public static UUID getId(Object entity) {
if (entity instanceof HibernateProxy hp) {
LazyInitializer lazyInitializer = hp.getHibernateLazyInitializer();
if (lazyInitializer.isUninitialized()) {
return (UUID) lazyInitializer.getIdentifier();
}
}
try {
return (UUID) ReflectionUtils.getRequiredMethod(entity.getClass(), "getId").invoke(entity);
} catch (Exception e) {
throw new TechnicalException("id error", e);
}
}
}