List of usage examples for org.hibernate.persister.collection CollectionPersister getElementType
Type getElementType();
From source file:br.gov.jfrj.siga.model.Objeto.java
License:Open Source License
private static void cascadeOrphans(Objeto base, PersistentCollection persistentCollection, boolean willBeSaved) throws UnexpectedException { SessionImpl session = ((SessionImpl) em().getDelegate()); PersistenceContext pc = session.getPersistenceContext(); CollectionEntry ce = pc.getCollectionEntry(persistentCollection); if (ce != null) { CollectionPersister cp = ce.getLoadedPersister(); if (cp != null) { Type ct = cp.getElementType(); if (ct instanceof EntityType) { EntityEntry entry = pc.getEntry(base); String entityName = entry.getEntityName(); entityName = ((EntityType) ct).getAssociatedEntityName(session.getFactory()); if (ce.getSnapshot() != null) { Collection orphans = ce.getOrphans(entityName, persistentCollection); for (Object o : orphans) { saveAndCascadeIfObjeto(o, willBeSaved); }//from www. jav a2 s . com } } } } }
From source file:com.miranteinfo.seam.hibernate.HibernateCascade.java
License:Open Source License
/** * Cascade an action to a collection/* w w w . j a v a 2 s . co m*/ */ private void cascadeCollection(final Object child, final CascadeStyle style, final Object anything, final CollectionType type) { CollectionPersister persister = eventSource.getFactory().getCollectionPersister(type.getRole()); Type elemType = persister.getElementType(); final int oldCascadeTo = cascadeTo; if (cascadeTo == AFTER_INSERT_BEFORE_DELETE) { cascadeTo = AFTER_INSERT_BEFORE_DELETE_VIA_COLLECTION; } //cascade to current collection elements if (elemType.isEntityType() || elemType.isAnyType() || elemType.isComponentType()) { cascadeCollectionElements(child, type, style, elemType, anything, persister.isCascadeDeleteEnabled()); } cascadeTo = oldCascadeTo; }
From source file:cz.jirutka.rsql.visitor.hibernate.HibernateCriterionVisitor.java
License:Apache License
private Tuple<Type, String>[] getPath(ClassMetadata classMetadata, String[] names) { Tuple<Type, String>[] path = new Tuple[names.length]; Object element = classMetadata; for (int i = 0; i < names.length; ++i) { String name = names[i];//from w w w . j av a2 s. c om Type propertyType = getPropertyType(element, name); path[i] = new Tuple<Type, String>(propertyType, name); if (propertyType.isCollectionType()) { CollectionType collectionType = (CollectionType) propertyType; String associatedEntityName = collectionType.getRole(); CollectionPersister collectionPersister = getSessionFactory() .getCollectionPersister(associatedEntityName); element = collectionPersister.getElementType(); } else if (propertyType.isAssociationType()) { AssociationType associationType = (AssociationType) propertyType; String associatedEntityName = associationType.getAssociatedEntityName(getSessionFactory()); element = getSessionFactory().getClassMetadata(associatedEntityName); } else if (propertyType.isComponentType()) { element = propertyType; } } return path; }
From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from w w w . java 2 s . co m public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner) throws HibernateException { List<E> baseList = this.getBase(); Serializable[] array = (Serializable[]) disassembled; int size = array.length; beforeInitialize(persister, size); for (int i = 0; i < size; i++) { baseList.add((E) persister.getElementType().assemble(array[i], getSession(), owner)); } }
From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java
License:Open Source License
@Override public Serializable disassemble(CollectionPersister persister) throws HibernateException { List<E> baseList = this.getBase(); int length = baseList.size(); Serializable[] result = new Serializable[length]; for (int i = 0; i < length; i++) { result[i] = persister.getElementType().disassemble(baseList.get(i), getSession(), null); }//from ww w .j a v a2s. c o m return result; }
From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override// w ww . j av a2 s. c o m public boolean equalsSnapshot(CollectionPersister persister) throws HibernateException { List<E> baseList = this.getBase(); List<E> sn = (List<E>) getSnapshot(); Type elementType = persister.getElementType(); if (sn.size() != baseList.size()) { return false; } Iterator<E> iter = baseList.iterator(); Iterator<E> sniter = sn.iterator(); while (iter.hasNext()) { if (elementType.isDirty(iter.next(), sniter.next(), getSession())) { return false; } } return true; }
From source file:org.babyfish.hibernate.collection.spi.persistence.ListBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from w w w. j a v a 2 s. co m public Serializable getSnapshot(CollectionPersister persister) throws HibernateException { MAList<E> baseList = this.getBase(); ArrayList<E> clonedList = new ArrayList<E>(baseList.unifiedComparator(), baseList.size()); Iterator<E> iter = baseList.iterator(); while (iter.hasNext()) { E deepCopy = (E) persister.getElementType().deepCopy(iter.next(), persister.getFactory()); clonedList.add(deepCopy); } return clonedList; }
From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from w ww.jav a 2 s .c o m public void initializeFromCache(CollectionPersister persister, Serializable disassembled, Object owner) throws HibernateException { Serializable[] array = (Serializable[]) disassembled; int size = array.length; beforeInitialize(persister, size); MAMap<K, V> baseMap = this.getBase(); for (int i = 0; i < size; i += 2) { baseMap.put((K) persister.getIndexType().assemble(array[i], getSession(), owner), (V) persister.getElementType().assemble(array[i + 1], getSession(), owner)); } }
From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from w ww . java 2 s. c om public boolean equalsSnapshot(CollectionPersister persister) throws HibernateException { Type elementType = persister.getElementType(); XMap<K, V> snapshotMap = (XMap<K, V>) this.getSnapshot(); MAMap<K, V> baseMap = this.getBase(); if (snapshotMap.size() != baseMap.size()) { return false; } Iterator<Entry<K, V>> iter = baseMap.entrySet().iterator(); while (iter.hasNext()) { Entry<K, V> entry = iter.next(); if (elementType.isDirty(entry.getValue(), snapshotMap.get(entry.getKey()), this.getSession())) { return false; } } return true; }
From source file:org.babyfish.hibernate.collection.spi.persistence.MapBasePersistence.java
License:Open Source License
@Override public Serializable disassemble(CollectionPersister persister) throws HibernateException { MAMap<K, V> baseMap = this.getBase(); Serializable[] result = new Serializable[baseMap.size() << 1]; Iterator<Entry<K, V>> iter = baseMap.entrySet().iterator(); int i = 0;//from ww w. j a v a2 s. c o m while (iter.hasNext()) { Entry<K, V> e = iter.next(); result[i++] = persister.getIndexType().disassemble(e.getKey(), getSession(), null); result[i++] = persister.getElementType().disassemble(e.getValue(), getSession(), null); } return result; }