List of usage examples for org.hibernate.persister.entity SingleTableEntityPersister getIdentifierGenerator
public IdentifierGenerator getIdentifierGenerator() throws HibernateException
From source file:com.github.kuros.random.jpa.metamodel.AttributeProvider.java
License:Open Source License
private void init() { entityTableMappingByClass = new HashMap<Class<?>, EntityTableMapping>(); entityTableMappingByTableName = new HashMap<String, List<EntityTableMapping>>(); final HibernateEntityManagerFactory entityManagerFactory = (HibernateEntityManagerFactory) entityManager .getEntityManagerFactory();/* w ww.j a va 2s . c o m*/ final Map<String, ClassMetadata> allClassMetadata = entityManagerFactory.getSessionFactory() .getAllClassMetadata(); final Set<EntityType<?>> entities = entityManager.getMetamodel().getEntities(); for (EntityType<?> entity : entities) { final ClassMetadata classMetadata = allClassMetadata.get(entity.getJavaType().getName()); if (classMetadata instanceof SingleTableEntityPersister) { final EntityTableMapping entityTableMapping = new EntityTableMapping(entity.getJavaType()); final SingleTableEntityPersister singleTableEntityPersister = (SingleTableEntityPersister) classMetadata; entityTableMapping.addColumnIds(singleTableEntityPersister.getKeyColumnNames()); entityTableMapping.setTableName(getTableName(singleTableEntityPersister)); entityTableMapping .setIdentifierGenerator(singleTableEntityPersister.getIdentifierGenerator().getClass()); final List<String> attributeNames = getSupportedAttributeNames(singleTableEntityPersister); for (Attribute attribute : entity.getAttributes()) { final String name = AttributeHelper.getName(attribute); final String[] propertyColumnNames = singleTableEntityPersister.getPropertyColumnNames(name); final String columnName = propertyColumnNames.length > 0 ? propertyColumnNames[0] : null; if (columnName != null && attributeNames.contains(name)) { entityTableMapping.addAttributeColumnMapping(name, columnName); } } for (String id : entityTableMapping.getColumnIds()) { entityTableMapping.addAttributeIds(entityTableMapping.getAttributeName(id)); } putEntityTableMapping(singleTableEntityPersister, entityTableMapping); entityTableMappingByClass.put(entity.getJavaType(), entityTableMapping); } } }