List of usage examples for org.hibernate.persister.entity EntityPersister getPropertyValue
Object getPropertyValue(Object object, String propertyName);
From source file:com.googlecode.hibernate.audit.synchronization.work.InsertAuditWorkUnit.java
License:Open Source License
private void processProperties(Session session, AuditConfiguration auditConfiguration, AuditEvent auditEvent, EntityPersister persister, Object entity, AuditObject auditObject) { for (String propertyName : persister.getPropertyNames()) { Type propertyType = persister.getPropertyType(propertyName); Object propertyValue = persister.getPropertyValue(entity, propertyName); processProperty(session, auditConfiguration, auditEvent, entity, propertyName, propertyValue, propertyType, auditObject); }/*from ww w .ja va 2 s . c om*/ }
From source file:com.googlecode.hibernate.audit.synchronization.work.UpdateAuditWorkUnit.java
License:Open Source License
private void processProperties(Session session, AuditConfiguration auditConfiguration, AuditEvent auditEvent, EntityPersister persister, Object entity, AuditObject auditObject) { String[] propertyNames = persister.getPropertyNames(); int[] changedPropertyIndexes = null; if (oldState == null) { // if the old state does not exist - for example directly updating an entity that is not associated with the session before that. changedPropertyIndexes = new int[propertyNames.length]; for (int i = 0; i < propertyNames.length; i++) { changedPropertyIndexes[i] = i; }// w w w . java 2s . com } else { changedPropertyIndexes = persister.findDirty(newState, oldState, entity, (SessionImplementor) session); } for (int i = 0; i < changedPropertyIndexes.length; i++) { String propertyName = propertyNames[changedPropertyIndexes[i]]; if (auditConfiguration.getExtensionManager().getAuditableInformationProvider().isAuditable(entityName, propertyName)) { Type propertyType = persister.getPropertyType(propertyName); Object propertyValue = persister.getPropertyValue(entity, propertyName); processProperty(session, auditConfiguration, auditEvent, entity, propertyName, propertyValue, propertyType, auditObject); } } }
From source file:org.babyfish.hibernate.internal.SessionImplWrapper.java
License:Open Source License
@SuppressWarnings("unchecked") protected static void delete(XSessionImplementor sessionProxy, Object object) { if (object != null) { SessionFactory sessionFactory = sessionProxy.getRawSessionImpl().getSessionFactory(); PersistenceContext persistenceContext = ((org.hibernate.internal.SessionImpl) sessionProxy .getRawSessionImpl()).getPersistenceContext(); Map<PersistentCollection, CollectionEntry> collectionEntries = persistenceContext .getCollectionEntries(); for (Entry<PersistentCollection, CollectionEntry> entry : collectionEntries.entrySet()) { PersistentCollection persistentCollection = entry.getKey(); if (persistentCollection.wasInitialized()) { CollectionMetadata collectionMetadata = sessionFactory .getCollectionMetadata(persistentCollection.getRole()); Class<?> elementClass = collectionMetadata.getElementType().getReturnedClass(); if (elementClass.isAssignableFrom(object.getClass())) { if (persistentCollection instanceof Map<?, ?>) { ((Map<?, ?>) persistentCollection).values().remove(object); } else if (persistentCollection instanceof Collection<?>) { ((Collection<?>) persistentCollection).remove(object); }/*from w w w. j a v a 2 s. co m*/ } } } Class<?> clazz = object.getClass(); Collection<HbmReference> hbmReferences = null; NavigableMap<Class<?>, Collection<HbmReference>> hbmReferencesByTargetClass = (NavigableMap<Class<?>, Collection<HbmReference>>) ((XSessionFactoryImplementor) sessionProxy .getFactory()).getInternalData(SessionFactoryImplWrapper.IDK_HBM_REFERENCES_BY_TARGET_CLASS); for (Entry<Class<?>, Collection<HbmReference>> entry : hbmReferencesByTargetClass.descendingMap() .entrySet()) { if (entry.getKey().isAssignableFrom(clazz)) { hbmReferences = entry.getValue(); break; } } if (hbmReferences != null) { EntityReferenceComparator<? super Object> referenceComparator = EntityReferenceComparator .getInstance(); Entry<Object, EntityEntry>[] entityEntries = persistenceContext.reentrantSafeEntityEntries(); if (entityEntries != null) { for (Entry<Object, EntityEntry> entry : entityEntries) { Object entity = entry.getKey(); if (Hibernate.isInitialized(entity)) { EntityPersister persister = entry.getValue().getPersister(); ClassMetadata classMetadata = persister.getClassMetadata(); for (HbmReference hbmReference : hbmReferences) { if (hbmReference.ownerMetadata == classMetadata) { Object expectedObject = persister.getPropertyValue(entity, hbmReference.propertyIndex); if (referenceComparator.same(expectedObject, object)) { persister.setPropertyValue(entity, hbmReference.propertyIndex, null); } } } } } } } } sessionProxy.getRawSessionImpl().delete(object); }
From source file:org.granite.tide.hibernate4.HibernateDataChangePublishListener.java
License:Open Source License
private static String getUid(EntityPersister persister, Object entity) { for (int i = 0; i < persister.getPropertyNames().length; i++) { if ("uid".equals(persister.getPropertyNames()[i])) return (String) persister.getPropertyValue(entity, i); }/*from w w w . ja va2 s .co m*/ return null; }