Example usage for org.hibernate.proxy HibernateProxy getHibernateLazyInitializer

List of usage examples for org.hibernate.proxy HibernateProxy getHibernateLazyInitializer

Introduction

In this page you can find the example usage for org.hibernate.proxy HibernateProxy getHibernateLazyInitializer.

Prototype

public LazyInitializer getHibernateLazyInitializer();

Source Link

Document

Get the underlying lazy initialization handler.

Usage

From source file:com.formation.adhesion.ods.web.server.service.hibernatefilter.HibernateFilter.java

License:Apache License

@SuppressWarnings("unchecked")
public static Object filter(Object input) {
    try {/*from w  w  w. j av  a 2  s  . c o m*/
        RPC.getDefaultSerializationPolicy().validateSerialize(input.getClass());
        return input;
    } catch (SerializationException e1) {

        if (input == null) {
            return input;
        }
        if (input instanceof Date) {
            return new java.util.Date(((java.util.Date) input).getTime());
        }

        if (input instanceof PersistentSet) {
            HashSet<Object> hashSet = new HashSet<Object>();
            PersistentSet persSet = (PersistentSet) input;
            if (persSet.wasInitialized()) {
                addAll(persSet, hashSet);
            }
            return hashSet;
        }
        if (input instanceof PersistentList) {
            ArrayList<Object> arrayList = new ArrayList<Object>();
            PersistentList persList = (PersistentList) input;
            if (persList.wasInitialized()) {
                addAll(persList, arrayList);
            }
            return arrayList;
        }
        if (input instanceof PersistentBag) {
            ArrayList<Object> arrayList = new ArrayList<Object>();
            PersistentBag persBag = (PersistentBag) input;
            if (persBag.wasInitialized()) {
                addAll(persBag, arrayList);
            }
            return arrayList;
        }
        if (input instanceof PersistentMap) {
            HashMap<Object, Object> hashMap = new HashMap<Object, Object>();
            PersistentMap persMap = (PersistentMap) input;
            if (persMap.wasInitialized()) {
                putAll(persMap, hashMap);
            }
            return hashMap;
        }
        if (input.getClass().getName().contains("CGLIB")) {

            if (Hibernate.isInitialized(input)) {

                try {
                    HibernateProxy hp = (HibernateProxy) input;
                    LazyInitializer li = hp.getHibernateLazyInitializer();
                    log.warn("On The Fly initialization: " + li.getEntityName());
                    return li.getImplementation();

                } catch (ClassCastException c) {
                    log.error("error casting to HibernateProxy " + input);
                    return null;
                }

                // Hibernate.initialize(instance);
                //
                //
                // log.warn("\nentity: " + cg.getEntityName()
                // + "\nidentifier" + cg.getIdentifier()
                // + "\nimplemenation " + cg.getImplementation());
                //
                // log.warn("On The Fly initialization: " + instance
                // + " now: " + instance.getClass().getName());
                //
                // if (instance instanceof ReallyCloneable) {
                // log.debug(instance.getClass().getName()
                // + " CGLIB Cloning " + instance);
                // return ((ReallyCloneable) instance).clone();
                // } else {
                // log
                // .warn("Initialized, but doesn't implement
                // ReallyCloneable"
                // + instance.getClass()
                // + " "
                // + instance.getClass().getName());
                // throw new CouldntFixCGLIBException(
                // instance.getClass()
                // + " must implement ReallyCloneable if we're to fix
                // it.");
                // }
            } else {
                log.debug("Uninitialized CGLIB");
                return null;
            }
        }

        Class instanceClass = input.getClass();
        Method[] methods = instanceClass.getMethods();
        for (int i = 0; i < methods.length; i++) {
            try {
                if (methods[i].getName().startsWith("get")) {
                    Object value = methods[i].invoke(input);

                    // on doit donc filtrer cette valeur
                    Method setter = null;
                    try {
                        setter = instanceClass.getMethod("s" + methods[i].getName().substring(1),
                                methods[i].getReturnType());

                    } catch (Exception e) {
                        // la methode set correspondante n'existe pas
                    }
                    if (setter != null)
                        setter.invoke(input, filter(value));

                }
            } catch (InvocationTargetException e) {
                log.info("Call method " + methods[i].getName() + " failed on class " + instanceClass.getName());
            } catch (Exception e) {
                log.error(e);
            }
        }
        return input;
    }

}

From source file:com.github.dozermapper.core.util.HibernateProxyResolver.java

License:Apache License

@Override
public <T> T unenhanceObject(T object) {
    if (object instanceof HibernateProxy) {
        HibernateProxy hibernateProxy = (HibernateProxy) object;
        LazyInitializer lazyInitializer = hibernateProxy.getHibernateLazyInitializer();

        return (T) lazyInitializer.getImplementation();
    }//from w w  w  . j  a  v a 2 s  .  com
    return object;
}

From source file:com.google.gwt.sample.dynatable.utils.HibernateFilter.java

License:Apache License

@SuppressWarnings("unchecked")
public static Object filter(Object instance) {
    if (instance == null) {
        return instance;
    }/*from  ww w.  j  a  v a2s.  c  o  m*/
    if (instance instanceof Date) {
        return new java.util.Date(((java.util.Date) instance).getTime());
    }

    if (instance instanceof PersistentSet) {
        HashSet<Object> hashSet = new HashSet<Object>();
        PersistentSet persSet = (PersistentSet) instance;
        if (persSet.wasInitialized()) {
            hashSet.addAll(persSet);
        }
        return hashSet;
    }
    if (instance instanceof PersistentList) {
        ArrayList<Object> arrayList = new ArrayList<Object>();
        PersistentList persList = (PersistentList) instance;
        if (persList.wasInitialized()) {
            arrayList.addAll(persList);
        }
        return arrayList;
    }
    if (instance instanceof PersistentBag) {
        ArrayList<Object> arrayList = new ArrayList<Object>();
        PersistentBag persBag = (PersistentBag) instance;
        if (persBag.wasInitialized()) {
            arrayList.addAll(persBag);
        }
        return arrayList;
    }
    if (instance instanceof PersistentMap) {
        HashMap<Object, Object> hashMap = new HashMap<Object, Object>();
        PersistentMap persMap = (PersistentMap) instance;
        if (persMap.wasInitialized()) {
            hashMap.putAll(persMap);
        }
        return hashMap;
    }
    if (instance.getClass().getName().contains("CGLIB")) {

        if (Hibernate.isInitialized(instance)) {

            try {
                HibernateProxy hp = (HibernateProxy) instance;
                LazyInitializer li = hp.getHibernateLazyInitializer();
                log.warn("On The Fly initialization: " + li.getEntityName());
                return li.getImplementation();

            } catch (ClassCastException c) {
                log.error("error casting to HibernateProxy " + instance);
                return null;
            }

            // Hibernate.initialize(instance);
            //
            //               
            // log.warn("\nentity: " + cg.getEntityName()
            // + "\nidentifier" + cg.getIdentifier()
            // + "\nimplemenation " + cg.getImplementation());
            //
            // log.warn("On The Fly initialization: " + instance
            // + " now: " + instance.getClass().getName());
            //
            // if (instance instanceof ReallyCloneable) {
            // log.debug(instance.getClass().getName()
            // + " CGLIB Cloning " + instance);
            // return ((ReallyCloneable) instance).clone();
            // } else {
            // log
            // .warn("Initialized, but doesn't implement
            // ReallyCloneable"
            // + instance.getClass()
            // + " "
            // + instance.getClass().getName());
            // throw new CouldntFixCGLIBException(
            // instance.getClass()
            // + " must implement ReallyCloneable if we're to fix
            // it.");
            // }
        } else {
            log.debug("Uninitialized CGLIB");
            return null;
        }
    }

    return instance;
}

From source file:com.jd.survey.util.HibernateProxySerializer.java

License:Open Source License

@Override
public JsonElement serialize(HibernateProxy proxyObj, Type arg1, JsonSerializationContext arg2) {
    try {//from   w  w w  .j  av  a 2  s  .c  om
        GsonBuilder gsonBuilder = new GsonBuilder();
        //below ensures deep deproxied serialization
        gsonBuilder.registerTypeHierarchyAdapter(HibernateProxy.class, new HibernateProxySerializer());
        Object deProxied = proxyObj.getHibernateLazyInitializer().getImplementation();
        return gsonBuilder.create().toJsonTree(deProxied);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:com.projectlaver.service.PaymentService.java

License:Open Source License

private <T> T deproxy(T obj) {
    if (obj == null) {
        return obj;
    }/*from ww w .  j a  v  a  2  s . c o  m*/
    if (obj instanceof HibernateProxy) {
        // Unwrap Proxy;
        //      -- loading, if necessary.
        HibernateProxy proxy = (HibernateProxy) obj;
        LazyInitializer li = proxy.getHibernateLazyInitializer();
        return (T) li.getImplementation();
    }
    return obj;
}

From source file:com.userweave.presentation.model.EntityBaseLoadableDetachableModel.java

License:Open Source License

@SuppressWarnings("unchecked")
public EntityBaseLoadableDetachableModel(T entity) {
    super(entity);

    if (entity == null) {
        throw new NullPointerException();
    }/*from   w w  w . ja  v  a  2 s  . c o m*/

    if (entity.isTransient()) {
        // keep an object reference if entity is transient
        this.entity = entity;
    } else {
        this.id = entity.getId();
    }

    if (entity instanceof HibernateProxy) {
        HibernateProxy proxy = (HibernateProxy) entity;
        this.clazz = proxy.getHibernateLazyInitializer().getPersistentClass();
    } else {
        clazz = (Class<T>) entity.getClass();
    }
}

From source file:com.utest.dao.TypelessHibernateDAOImpl.java

License:Apache License

@Override
public Object loadLazyObject(final Object entity_) {

    if (entity_ instanceof HibernateProxy) {
        Hibernate.initialize(entity_);//w  ww.j a v a  2s.  com
        final HibernateProxy proxy = (HibernateProxy) entity_;
        return proxy.getHibernateLazyInitializer().getImplementation();
    } else {
        return entity_;
    }
}

From source file:com.viettel.vsaadmin.database.DAOHibernate.UsersDAOHE.java

License:Open Source License

/**
 * tim kiem danh sach nguoi dung cua don vi
 *
 * @param deptId//from   w  w w  .ja v  a2s  .  co m
 * @return
 */
public List<Users> getUsersOfDept(Long deptId) {
    List lstResult = new ArrayList<Users>();
    String sql = "";
    try {
        sql = "SELECT u FROM Users u WHERE u.status = ? and ((u.deptId = ? or u.deptRepresentId = ?) "
                + "OR u.userId in (SELECT ru.userId FROM RoleUserDept ru,RoleUser r "
                + " WHERE ru.userId = r.userId and ru.roleId=r.roleId "
                + " and ru.deptId = ? and ru.isActive=1 and r.isActive = 1))"
                + " order by u.posId desc, nlssort(lower(u.fullName),'nls_sort = Vietnamese') ";
        Query query = getSession().createQuery(sql);
        query.setParameter(0, Constants.Status.ACTIVE);
        query.setParameter(1, deptId);
        query.setParameter(2, deptId);
        query.setParameter(3, deptId);
        lstResult = query.list();

        //Get User dc gan role vao BTP
        if (lstResult == null) {
            lstResult = new ArrayList<Users>();
        }

        if (lstResult != null && !lstResult.isEmpty()) {
            for (int i = 0; i < lstResult.size(); i++) {
                Users user = (Users) lstResult.get(i);
                if (user instanceof HibernateProxy) {
                    HibernateProxy proxy = (HibernateProxy) user;
                    Users newUser = (Users) proxy.getHibernateLazyInitializer().getImplementation();
                    lstResult.set(i, newUser);
                }
            }
        }

    } catch (Exception ex) {
        LogUtil.addLog(ex);//binhnt sonar a160901
        //            e.getMessage();
        return new ArrayList<Users>();
    }
    return lstResult;
}

From source file:com.viettel.vsaadmin.database.DAOHibernate.UsersDAOHE.java

License:Open Source License

/**
 * get All Users of Department (not self)
 *
 * @param deptId//from   w w  w .  ja  v a 2 s  .  c o  m
 * @param userId
 * @return
 */
public List<Users> getUsersOfDept(Long deptId, Long userId) {
    List lstResult = new ArrayList<Users>();
    String sql = "";
    try {
        sql = "SELECT u FROM Users u WHERE u.status = ? and u.userId <> ? and (u.deptId = ? "
                + "OR u.userId in (SELECT ru.userId FROM RoleUserDept ru,RoleUser r "
                + " WHERE ru.userId = r.userId and ru.roleId=r.roleId "
                + " and ru.deptId = ? and ru.isActive=1 and r.isActive = 1))"
                + " order by u.posId desc, nlssort(lower(u.fullName),'nls_sort = Vietnamese') ";

        Query query = getSession().createQuery(sql);
        query.setParameter(0, Constants.Status.ACTIVE);
        query.setParameter(1, userId);
        query.setParameter(2, deptId);
        query.setParameter(3, deptId);
        lstResult = query.list();
        if (lstResult != null && !lstResult.isEmpty()) {
            for (int i = 0; i < lstResult.size(); i++) {
                Users user = (Users) lstResult.get(i);
                if (user instanceof HibernateProxy) {
                    HibernateProxy proxy = (HibernateProxy) user;
                    Users newUser = (Users) proxy.getHibernateLazyInitializer().getImplementation();
                    lstResult.set(i, newUser);
                }
            }
        }
    } catch (Exception ex) {
        LogUtil.addLog(ex);//binhnt sonar a160901
        //            e.getMessage();
        return new ArrayList<Users>();
    }
    return lstResult;
}

From source file:com.viettel.vsaadmin.database.DAOHibernate.UsersDAOHE.java

License:Open Source License

/**
 * tim kiem danh sach nguoi dung cua don vi
 *
 * @param deptId/*from   ww  w  .  j  a  va2s  .  com*/
 * @param userId
 * @return
 */
public List<Users> getUsersOfDept(String deptIds, Long userId) {
    List lstResult = new ArrayList<Users>();
    String sql = "";
    try {
        if (deptIds != null && !"".equals(deptIds)) {
            String[] depts = deptIds.split(";");
            Long[] deptId = new Long[depts.length];
            for (int i = 0; i < depts.length; i++) {
                deptId[i] = Long.parseLong(depts[i]);
            }
            sql = "SELECT u FROM Users u WHERE u.status = :status and (u.deptId IN (:deptIds) "
                    + "OR u.userId in ( SELECT ru.userId FROM RoleUserDept ru WHERE ru.deptId IN (:deptIds2)))"
                    + " order by u.posId desc,nlssort(lower(u.fullName),'nls_sort = Vietnamese') ";

            Query query = getSession().createQuery(sql);
            query.setParameter("status", Constants.Status.ACTIVE);
            query.setParameterList("deptIds", Arrays.asList(deptId));
            query.setParameterList("deptIds2", Arrays.asList(deptId));
            // query.setParameter(2, userId);
            lstResult = query.list();
            if (lstResult != null && !lstResult.isEmpty()) {
                for (int i = 0; i < lstResult.size(); i++) {
                    Users user = (Users) lstResult.get(i);
                    if (user instanceof HibernateProxy) {
                        HibernateProxy proxy = (HibernateProxy) user;
                        Users newUser = (Users) proxy.getHibernateLazyInitializer().getImplementation();
                        lstResult.set(i, newUser);
                    }
                }
            }
        }
    } catch (Exception ex) {
        LogUtil.addLog(ex);//binhnt sonar a160901
        //            e.getMessage();
        return new ArrayList<Users>();
    }
    return lstResult;
}