List of usage examples for org.hibernate.tuple.entity EntityMetamodel getIdentifierProperty
public IdentifierProperty getIdentifierProperty()
From source file:com.evolveum.midpoint.repo.sql.util.RUtil.java
License:Apache License
private static void fixCompositeIdentifierInMetaModel(SessionFactory sessionFactory, Class clazz) { ClassMetadata classMetadata = sessionFactory.getClassMetadata(clazz); if (classMetadata instanceof AbstractEntityPersister) { AbstractEntityPersister persister = (AbstractEntityPersister) classMetadata; EntityMetamodel model = persister.getEntityMetamodel(); IdentifierProperty identifier = model.getIdentifierProperty(); try {// www .j a v a 2 s . c om Field field = IdentifierProperty.class.getDeclaredField("hasIdentifierMapper"); field.setAccessible(true); field.set(identifier, true); field.setAccessible(false); } catch (Exception ex) { throw new SystemException( "Attempt to fix entity meta model with hack failed, reason: " + ex.getMessage(), ex); } } }
From source file:com.github.kuros.random.jpa.metamodel.AttributeProvider.java
License:Open Source License
private List<String> getSupportedAttributeNames(final SingleTableEntityPersister singleTableEntityPersister) { final EntityMetamodel entityMetamodel = singleTableEntityPersister.getEntityMetamodel(); final NonIdentifierAttribute[] properties = entityMetamodel.getProperties(); final List<String> attributeNames = new ArrayList<String>(); for (NonIdentifierAttribute property : properties) { if (property.isInsertable()) { if (property instanceof EntityBasedAssociationAttribute) { final EntityBasedAssociationAttribute entityBasedAssociationAttribute = (EntityBasedAssociationAttribute) property; if (!(entityBasedAssociationAttribute .getAssociationNature() == AssociationAttributeDefinition.AssociationNature.ENTITY)) { continue; }/*from www. j av a 2s . co m*/ } attributeNames.add(property.getName()); } } final IdentifierProperty identifierProperty = entityMetamodel.getIdentifierProperty(); attributeNames.add(identifierProperty.getName()); return attributeNames; }