@Override public int[] resolveAttributeIndexes(String[] attributeNames) { if ( attributeNames == null || attributeNames.length == 0 ) { return new int[0]; } int[] fields = new int[attributeNames.length]; int counter = 0; // We sort to get rid of duplicates Arrays.sort( attributeNames ); Integer index0 = entityMetamodel.getPropertyIndexOrNull( attributeNames[0] ); if ( index0 != null ) { fields[counter++] = index0; } for ( int i = 0, j = 1; j < attributeNames.length; ++i, ++j ) { if ( !attributeNames[i].equals( attributeNames[j] ) ) { Integer index = entityMetamodel.getPropertyIndexOrNull( attributeNames[j] ); if ( index != null ) { fields[counter++] = index; } } } return Arrays.copyOf( fields, counter ); }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull( propertyName ); if ( index == null ) { return null; } return tableNames[propertyTableNumbers[index]]; }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull( propertyName ); if ( index == null ) { return null; } return qualifiedTableNames[propertyTableNumbers[index]]; }
public int getPropertyIndex(String propertyName) { Integer index = getPropertyIndexOrNull(propertyName); if ( index == null ) { throw new HibernateException("Unable to resolve property: " + propertyName); } return index; }
: propertyPath; Integer index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); if ( index == null ) { propertyPath = PropertyPath.IDENTIFIER_MAPPER_PROPERTY + "." + propertyPath; : propertyPath; index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); final Object baseValue = getPropertyValue( entity, index ); if ( loc > 0 ) {
@Override public Member resolveMember(AttributeContext attributeContext) { final ManagedTypeDescriptor ownerType = attributeContext.getOwnerType(); final Property property = attributeContext.getPropertyMapping(); final Type.PersistenceType persistenceType = ownerType.getPersistenceType(); if ( Type.PersistenceType.EMBEDDABLE == persistenceType ) { return embeddedMemberResolver.resolveMember( attributeContext ); } else if ( Type.PersistenceType.ENTITY == persistenceType || Type.PersistenceType.MAPPED_SUPERCLASS == persistenceType ) { final AbstractIdentifiableType identifiableType = (AbstractIdentifiableType) ownerType; final EntityMetamodel entityMetamodel = getDeclarerEntityMetamodel( identifiableType ); final String propertyName = property.getName(); final Integer index = entityMetamodel.getPropertyIndexOrNull( propertyName ); if ( index == null ) { // just like in #determineIdentifierJavaMember , this *should* indicate we have an IdClass mapping return virtualIdentifierMemberResolver.resolveMember( attributeContext ); } else { final Getter getter = entityMetamodel.getTuplizer().getGetter( index ); return PropertyAccessMapImpl.GetterImpl.class.isInstance( getter ) ? new MapMember( propertyName, property.getType().getReturnedClass() ) : getter.getMember(); } } else { throw new IllegalArgumentException( "Unexpected owner type : " + persistenceType ); } } };
public int getPropertyIndex(String propertyName) { Integer index = getPropertyIndexOrNull(propertyName); if ( index == null ) { throw new HibernateException("Unable to resolve property: " + propertyName); } return index.intValue(); }
private void synchronizeHibernateState(EntityPersister persister, Object[] state, Map<String, Object> modifiedProperties) { EntityMetamodel entityMetamodel = persister.getEntityMetamodel(); for(Map.Entry<String,Object> entry : modifiedProperties.entrySet()) { Integer index = entityMetamodel.getPropertyIndexOrNull(entry.getKey()); if(index != null) { state[index] = entry.getValue(); } } }
public int getPropertyIndex(String propertyName) { Integer index = getPropertyIndexOrNull(propertyName); if ( index == null ) { throw new HibernateException("Unable to resolve property: " + propertyName); } return index.intValue(); }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull(propertyName); if (index==null) return null; return qualifiedTableNames[ propertyTableNumbers[ index.intValue() ] ]; }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull( propertyName ); if ( index == null ) { return null; } return tableNames[propertyTableNumbers[index.intValue()]]; }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull( propertyName ); if ( index == null ) { return null; } return tableNames[propertyTableNumbers[index.intValue()]]; }
public String getPropertyTableName(String propertyName) { Integer index = getEntityMetamodel().getPropertyIndexOrNull(propertyName); if (index==null) return null; return qualifiedTableNames[ propertyTableNumbers[ index.intValue() ] ]; }
public Object getPropertyValue(Object entity, String propertyPath) throws HibernateException { int loc = propertyPath.indexOf('.'); String basePropertyName = loc > 0 ? propertyPath.substring( 0, loc ) : propertyPath; //final int index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); Integer index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); if (index == null) { propertyPath = "_identifierMapper." + propertyPath; loc = propertyPath.indexOf('.'); basePropertyName = loc > 0 ? propertyPath.substring( 0, loc ) : propertyPath; } index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); final Object baseValue = getPropertyValue( entity, index.intValue() ); if ( loc > 0 ) { if ( baseValue == null ) { return null; } return getComponentValue( (ComponentType) entityMetamodel.getPropertyTypes()[index.intValue()], baseValue, propertyPath.substring(loc+1) ); } else { return baseValue; } }
public Object getPropertyValue(Object entity, String propertyPath) throws HibernateException { int loc = propertyPath.indexOf('.'); String basePropertyName = loc > 0 ? propertyPath.substring( 0, loc ) : propertyPath; //final int index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); Integer index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); if (index == null) { propertyPath = "_identifierMapper." + propertyPath; loc = propertyPath.indexOf('.'); basePropertyName = loc > 0 ? propertyPath.substring( 0, loc ) : propertyPath; } index = entityMetamodel.getPropertyIndexOrNull( basePropertyName ); final Object baseValue = getPropertyValue( entity, index.intValue() ); if ( loc > 0 ) { if ( baseValue == null ) { return null; } return getComponentValue( (ComponentType) entityMetamodel.getPropertyTypes()[index.intValue()], baseValue, propertyPath.substring(loc+1) ); } else { return baseValue; } }
@Override public boolean isOrphanRemoval(ManagedType<?> ownerType, String attributeName) { AbstractEntityPersister entityPersister = getEntityPersister(ownerType); if (entityPersister != null) { EntityMetamodel entityMetamodel = entityPersister.getEntityMetamodel(); Integer index = entityMetamodel.getPropertyIndexOrNull(attributeName); if (index != null) { try { return (boolean) HAS_ORPHAN_DELETE_METHOD.invoke(entityMetamodel.getCascadeStyles()[index]); } catch (Exception ex) { throw new RuntimeException("Could not access orphan removal information. Please report your version of hibernate so we can provide support for it!", ex); } } } return false; }
@Override public boolean isDeleteCascaded(ManagedType<?> ownerType, String attributeName) { AbstractEntityPersister entityPersister = getEntityPersister(ownerType); if (entityPersister != null) { EntityMetamodel entityMetamodel = entityPersister.getEntityMetamodel(); Integer index = entityMetamodel.getPropertyIndexOrNull(attributeName); if (index != null) { try { return (boolean) DO_CASCADE_METHOD.invoke(entityMetamodel.getCascadeStyles()[index], DELETE_CASCADE); } catch (Exception ex) { throw new RuntimeException("Could not access orphan removal information. Please report your version of hibernate so we can provide support for it!", ex); } } } return false; }
@Override public boolean isDeleteCascaded(ManagedType<?> ownerType, String attributeName) { AbstractEntityPersister entityPersister = getEntityPersister(ownerType); if (entityPersister != null) { EntityMetamodel entityMetamodel = entityPersister.getEntityMetamodel(); Integer index = entityMetamodel.getPropertyIndexOrNull(attributeName); if (index != null) { return entityMetamodel.getCascadeStyles()[index].doCascade(CascadingAction.DELETE); } } return false; }
@Override public boolean isOrphanRemoval(ManagedType<?> ownerType, String attributeName) { AbstractEntityPersister entityPersister = getEntityPersister(ownerType); if (entityPersister != null) { EntityMetamodel entityMetamodel = entityPersister.getEntityMetamodel(); Integer index = entityMetamodel.getPropertyIndexOrNull(attributeName); if (index != null) { return entityMetamodel.getCascadeStyles()[index].hasOrphanDelete(); } } return false; }
private void synchronizePersisterState(AbstractPreDatabaseOperationEvent event, Object[] state, EntityPersister persister, String[] propertyNames) { Object entity = event.getEntity(); EntityReflector reflector = persistentEntity.getReflector(); HashMap<Integer, Object> changedState= new HashMap<>(); EntityMetamodel entityMetamodel = persister.getEntityMetamodel(); for (int i = 0; i < propertyNames.length; i++) { String p = propertyNames[i]; Integer index = entityMetamodel.getPropertyIndexOrNull(p); if(index == null) continue; PersistentProperty property = persistentEntity.getPropertyByName(p); if (property == null) { continue; } String propertyName = property.getName(); if(GormProperties.VERSION.equals(propertyName)) { continue; } Object value = reflector.getProperty(entity, propertyName); if(state[index] != value) { changedState.put(i, value); } state[index] = value; } synchronizeEntityUpdateActionState(event, entity, changedState); }