private void addParentChildEntityNameByPropertyAndValue(AbstractEntityInsertAction action, BatchIdentifier batchIdentifier, Type type, Object value) { if ( type.isEntityType() ) { final EntityType entityType = (EntityType) type; final String entityName = entityType.getName(); final String rootEntityName = action.getSession().getFactory().getMetamodel().entityPersister( entityName ).getRootEntityName();
/** * Determine the relevant information for the entity type selected by this query or {@code null} in case this * query does not select exactly one entity type (e.g. in case of scalar values or joins (if supported in future revisions)). * @param queryReturnTypes */ private EntityMetadataInformation determineSingleEntityInformation(Type[] queryReturnTypes) { EntityMetadataInformation metadataInformation = null; for ( Type queryReturn : queryReturnTypes ) { if ( queryReturn instanceof EntityType ) { if ( metadataInformation != null ) { return null; } EntityType rootReturn = (EntityType) queryReturn; OgmEntityPersister persister = (OgmEntityPersister) sessionFactory.getMetamodel().entityPersister( rootReturn.getName() ); metadataInformation = new EntityMetadataInformation( persister.getEntityKeyMetadata(), rootReturn.getReturnedClass().getName() ); } } return metadataInformation; }
public Metadata getPropertyType(String property) { Type pType = metadata.getPropertyType(property); Class<?> pCollectionType = null; if (pType.isCollectionType()) { pType = ((CollectionType)pType).getElementType((SessionFactoryImplementor) sessionFactory); pCollectionType = pType.getReturnedClass(); } if (pType.isEntityType()) { return new HibernateEntityMetadata(sessionFactory, sessionFactory.getClassMetadata(((EntityType)pType).getName()), pCollectionType); } else { return new HibernateNonEntityMetadata(sessionFactory, pType, pCollectionType); } }
public Metadata getPropertyType(String property) { if (!type.isComponentType()) return null; int i = getPropertyIndex(property); if (i == -1) { return null; } else { Type pType = ((ComponentType)type).getSubtypes()[i]; Class<?> pCollectionType = null; if (pType.isCollectionType()) { pType = ((CollectionType)pType).getElementType((SessionFactoryImplementor) sessionFactory); pCollectionType = pType.getReturnedClass(); } if (pType.isEntityType()) { return new HibernateEntityMetadata(sessionFactory, sessionFactory.getClassMetadata(((EntityType)pType).getName()), pCollectionType); } else { return new HibernateNonEntityMetadata(sessionFactory, pType, pCollectionType); } } }