private void logCannotResolveNonNullableTransientDependencies(SharedSessionContractImplementor session) { for ( Map.Entry<Object,Set<AbstractEntityInsertAction>> entry : dependentActionsByTransientEntity.entrySet() ) { final Object transientEntity = entry.getKey(); final String transientEntityName = session.guessEntityName( transientEntity ); final Serializable transientEntityId = session.getFactory().getMetamodel().entityPersister( transientEntityName ).getIdentifier( transientEntity, session ); final String transientEntityString = MessageHelper.infoString( transientEntityName, transientEntityId ); final Set<String> dependentEntityStrings = new TreeSet<>(); final Set<String> nonNullableTransientPropertyPaths = new TreeSet<>(); for ( AbstractEntityInsertAction dependentAction : entry.getValue() ) { dependentEntityStrings.add( MessageHelper.infoString( dependentAction.getEntityName(), dependentAction.getId() ) ); for ( String path : dependenciesByAction.get( dependentAction ).getNonNullableTransientPropertyPaths( transientEntity ) ) { final String fullPath = dependentAction.getEntityName() + '.' + path; nonNullableTransientPropertyPaths.add( fullPath ); } } LOG.cannotResolveNonNullableTransientDependencies( transientEntityString, dependentEntityStrings, nonNullableTransientPropertyPaths ); } }
nonNullableTransientDependencies.getNonNullableTransientEntities().iterator().next(); final String firstPropertyPath = nonNullableTransientDependencies.getNonNullableTransientPropertyPaths( firstTransientDependency ).iterator().next();
private void logCannotResolveNonNullableTransientDependencies(SessionImplementor session) { for ( Map.Entry<Object,Set<AbstractEntityInsertAction>> entry : dependentActionsByTransientEntity.entrySet() ) { Object transientEntity = entry.getKey(); String transientEntityName = session.guessEntityName( transientEntity ); Serializable transientEntityId = session.getFactory().getEntityPersister( transientEntityName ).getIdentifier( transientEntity, session ); String transientEntityString = MessageHelper.infoString( transientEntityName, transientEntityId ); Set<String> dependentEntityStrings = new TreeSet<String>(); Set<String> nonNullableTransientPropertyPaths = new TreeSet<String>(); for ( AbstractEntityInsertAction dependentAction : entry.getValue() ) { dependentEntityStrings.add( MessageHelper.infoString( dependentAction.getEntityName(), dependentAction.getId() ) ); for ( String path : dependenciesByAction.get( dependentAction ).getNonNullableTransientPropertyPaths( transientEntity ) ) { String fullPath = new StringBuilder( dependentAction.getEntityName().length() + path.length() + 1 ) .append( dependentAction.getEntityName() ) .append( '.' ) .append( path ) .toString(); nonNullableTransientPropertyPaths.add( fullPath ); } } LOG.cannotResolveNonNullableTransientDependencies( transientEntityString, dependentEntityStrings, nonNullableTransientPropertyPaths ); } }
private void logCannotResolveNonNullableTransientDependencies(SessionImplementor session) { for ( Map.Entry<Object,Set<AbstractEntityInsertAction>> entry : dependentActionsByTransientEntity.entrySet() ) { Object transientEntity = entry.getKey(); String transientEntityName = session.guessEntityName( transientEntity ); Serializable transientEntityId = session.getFactory().getEntityPersister( transientEntityName ).getIdentifier( transientEntity, session ); String transientEntityString = MessageHelper.infoString( transientEntityName, transientEntityId ); Set<String> dependentEntityStrings = new TreeSet<String>(); Set<String> nonNullableTransientPropertyPaths = new TreeSet<String>(); for ( AbstractEntityInsertAction dependentAction : entry.getValue() ) { dependentEntityStrings.add( MessageHelper.infoString( dependentAction.getEntityName(), dependentAction.getId() ) ); for ( String path : dependenciesByAction.get( dependentAction ).getNonNullableTransientPropertyPaths( transientEntity ) ) { String fullPath = new StringBuilder( dependentAction.getEntityName().length() + path.length() + 1 ) .append( dependentAction.getEntityName() ) .append( '.' ) .append( path ) .toString(); nonNullableTransientPropertyPaths.add( fullPath ); } } LOG.cannotResolveNonNullableTransientDependencies( transientEntityString, dependentEntityStrings, nonNullableTransientPropertyPaths ); } }
private void logCannotResolveNonNullableTransientDependencies(SharedSessionContractImplementor session) { for ( Map.Entry<Object,Set<AbstractEntityInsertAction>> entry : dependentActionsByTransientEntity.entrySet() ) { final Object transientEntity = entry.getKey(); final String transientEntityName = session.guessEntityName( transientEntity ); final Object transientEntityId = session.getFactory().getMetamodel().findEntityDescriptor( transientEntityName ).getIdentifier( transientEntity, session ); final String transientEntityString = MessageHelper.infoString( transientEntityName, transientEntityId ); final Set<String> dependentEntityStrings = new TreeSet<>(); final Set<String> nonNullableTransientPropertyPaths = new TreeSet<>(); for ( AbstractEntityInsertAction dependentAction : entry.getValue() ) { dependentEntityStrings.add( MessageHelper.infoString( dependentAction.getEntityName(), dependentAction.getId() ) ); for ( String path : dependenciesByAction.get( dependentAction ).getNonNullableTransientPropertyPaths( transientEntity ) ) { final String fullPath = dependentAction.getEntityName() + '.' + path; nonNullableTransientPropertyPaths.add( fullPath ); } } LOG.cannotResolveNonNullableTransientDependencies( transientEntityString, dependentEntityStrings, nonNullableTransientPropertyPaths ); } }
nonNullableTransientDependencies.getNonNullableTransientEntities().iterator().next(); String firstPropertyPath = nonNullableTransientDependencies.getNonNullableTransientPropertyPaths( firstTransientDependency ).iterator().next(); throw new TransientPropertyValueException( "Not-null property references a transient value - transient instance must be saved before current operation",
nonNullableTransientDependencies.getNonNullableTransientEntities().iterator().next(); final String firstPropertyPath = nonNullableTransientDependencies.getNonNullableTransientPropertyPaths( firstTransientDependency ).iterator().next();
nonNullableTransientDependencies.getNonNullableTransientEntities().iterator().next(); String firstPropertyPath = nonNullableTransientDependencies.getNonNullableTransientPropertyPaths( firstTransientDependency ).iterator().next(); throw new TransientPropertyValueException( "Not-null property references a transient value - transient instance must be saved before current operation",