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

org.javers.hibernate.integration.HibernateUnproxyObjectAccessHook Maven / Gradle / Ivy

There is a newer version: 7.6.2
Show newest version
package org.javers.hibernate.integration;

import org.hibernate.Hibernate;
import org.hibernate.proxy.HibernateProxy;
import org.javers.core.graph.ObjectAccessHook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HibernateUnproxyObjectAccessHook implements ObjectAccessHook {

    private static final Logger logger = LoggerFactory.getLogger(HibernateUnproxyObjectAccessHook.class);

    public  T access(T entity) {
        if (entity instanceof HibernateProxy) {
            Hibernate.initialize(entity);
            HibernateProxy proxy = (HibernateProxy) entity;
            T unproxed = (T) proxy.getHibernateLazyInitializer().getImplementation();
            logger.info("unproxying instance of " + entity.getClass().getSimpleName() + " to " + unproxed.getClass().getSimpleName());
            return unproxed;
        }
        return entity;
    }
}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy