ResultSetMappingDefinition definition = new ResultSetMappingDefinition( ann.name() ); LOG.debugf( "Binding result set mapping: %s", definition.getName() ); LockMode.READ ); definition.addQueryReturn( result ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( normalizeColumnQuoting( column.name() ), definition.addQueryReturn( new NativeSQLQueryConstructorReturn( constructorResult.targetClass(), columnReturns ) );
@Override public NativeQuery setResultSetMapping(String name) { ResultSetMappingDefinition mapping = getProducer().getFactory().getNamedQueryRepository().getResultSetMappingDefinition( name ); if ( mapping == null ) { throw new MappingException( "Unknown SqlResultSetMapping [" + name + "]" ); } NativeSQLQueryReturn[] returns = mapping.getQueryReturns(); queryReturns.addAll( Arrays.asList( returns ) ); return this; }
/** * Resolve the given result set mapping names * * @param context The context for the resolution. See {@link ResultSetMappingResolutionContext} * @param resultSetMappingNames The names of the result-set-mappings to resolve */ public static void resolveResultSetMappings(ResultSetMappingResolutionContext context, String... resultSetMappingNames) { for ( String resultSetMappingName : resultSetMappingNames ) { log.tracef( "Starting attempt resolve named result-set-mapping : %s", resultSetMappingName ); final ResultSetMappingDefinition mapping = context.findResultSetMapping( resultSetMappingName ); if ( mapping == null ) { throw new UnknownSqlResultSetMappingException( "Unknown SqlResultSetMapping [" + resultSetMappingName + "]" ); } log.tracef( "Found result-set-mapping : %s", mapping.traceLoggableFormat() ); context.addQueryReturns( mapping.getQueryReturns() ); final SQLQueryReturnProcessor processor = new SQLQueryReturnProcessor( mapping.getQueryReturns(), context.getSessionFactory() ); final SQLQueryReturnProcessor.ResultAliasContext processResult = processor.process(); context.addQuerySpaces( processResult.collectQuerySpaces() ); } }
public void applyResultSetMapping(ResultSetMappingDefinition resultSetMappingDefinition) { final ResultSetMappingDefinition old = sqlResultSetMappingMap.put( resultSetMappingDefinition.getName(), resultSetMappingDefinition ); if ( old != null ) { throw new DuplicateMappingException( DuplicateMappingException.Type.RESULT_SET_MAPPING, resultSetMappingDefinition.getName() ); } }
resultSetName = path + '.' + resultSetName; ResultSetMappingDefinition definition = new ResultSetMappingDefinition( resultSetName ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( column, type ) ); definition.addQueryReturn( bindReturn( returnElem, mappings, cnt ) ); definition.addQueryReturn( bindReturnJoin( returnElem, mappings ) ); definition.addQueryReturn( bindLoadCollection( returnElem, mappings ) );
public void doSecondPass(Map persistentClasses) throws MappingException { ResultSetMappingDefinition definition = new ResultSetMappingDefinition( ann.name() ); if ( log.isInfoEnabled() ) log.info( "Binding resultset mapping: " + definition.getName() );
/** * Build a ResultSetMappingDefinition given a containing element for the "return-XXX" elements * * @param resultSetMappingSource The XML data as a JAXB binding * @param context The mapping state * @param prefix A prefix to apply to named ResultSet mapping; this is either {@code null} for * ResultSet mappings defined outside of any entity, or the name of the containing entity * if defined within the context of an entity * * @return The ResultSet mapping descriptor */ public static ResultSetMappingDefinition bind( ResultSetMappingBindingDefinition resultSetMappingSource, HbmLocalMetadataBuildingContext context, String prefix) { if ( StringHelper.isEmpty( prefix ) ) { throw new AssertionFailure( "Passed prefix was null; perhaps you meant to call the alternate #bind form?" ); } final String resultSetName = prefix + '.' + resultSetMappingSource.getName(); final ResultSetMappingDefinition binding = new ResultSetMappingDefinition( resultSetName ); bind( resultSetMappingSource, binding, context ); return binding; }
private static void bind( ResultSetMappingBindingDefinition resultSetMappingSource, ResultSetMappingDefinition binding, HbmLocalMetadataBuildingContext context) { int cnt = 0; for ( Object valueMappingSource : resultSetMappingSource.getValueMappingSources() ) { if ( JaxbHbmNativeQueryReturnType.class.isInstance( valueMappingSource ) ) { binding.addQueryReturn( extractReturnDescription( (JaxbHbmNativeQueryReturnType) valueMappingSource, context, cnt++ ) ); } else if ( JaxbHbmNativeQueryCollectionLoadReturnType.class.isInstance( valueMappingSource ) ) { binding.addQueryReturn( extractReturnDescription( (JaxbHbmNativeQueryCollectionLoadReturnType) valueMappingSource, context, cnt++ ) ); } else if ( JaxbHbmNativeQueryJoinReturnType.class.isInstance( valueMappingSource ) ) { binding.addQueryReturn( extractReturnDescription( (JaxbHbmNativeQueryJoinReturnType) valueMappingSource, context, cnt++ ) ); } else if ( JaxbHbmNativeQueryScalarReturnType.class.isInstance( valueMappingSource ) ) { binding.addQueryReturn( extractReturnDescription( (JaxbHbmNativeQueryScalarReturnType) valueMappingSource, context ) ); } } }
@Override public void addDefaultResultSetMapping(ResultSetMappingDefinition definition) { final String name = definition.getName(); if ( !defaultSqlResultSetMappingNames.contains( name ) && sqlResultSetMappingMap.containsKey( name ) ) { sqlResultSetMappingMap.remove( name ); } applyResultSetMapping( definition ); defaultSqlResultSetMappingNames.add( name ); }
resultSetName = path + '.' + resultSetName; ResultSetMappingDefinition definition = new ResultSetMappingDefinition( resultSetName ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( column, type ) ); definition.addQueryReturn( bindReturn( returnElem, mappings, cnt ) ); definition.addQueryReturn( bindReturnJoin( returnElem, mappings ) ); definition.addQueryReturn( bindLoadCollection( returnElem, mappings ) );
/** * Build a ResultSetMappingDefinition given a containing element for the "return-XXX" elements. * <p/> * This form is used for ResultSet mappings defined outside the context of any specific entity. * For {@code hbm.xml} this means at the root of the document. For annotations, this means at * the package level. * * @param resultSetMappingSource The XML data as a JAXB binding * @param context The mapping state * * @return The ResultSet mapping descriptor */ public static ResultSetMappingDefinition bind( ResultSetMappingBindingDefinition resultSetMappingSource, HbmLocalMetadataBuildingContext context) { if ( resultSetMappingSource.getName() == null ) { throw new MappingException( "ResultSet mapping did not specify name", context.getOrigin() ); } final ResultSetMappingDefinition binding = new ResultSetMappingDefinition( resultSetMappingSource.getName() ); bind( resultSetMappingSource, binding, context ); return binding; }
definition.addQueryReturn(new NativeSQLQueryRootReturn(getOrCreateAlias(entityClass), entityClass.getName(), getPropertyResults(entityClass, entityResultSet.fields(), returnedEntities, mappedReturns, ""), LockMode.READ)); .addQueryReturn( new NativeSQLQueryRootReturn(getOrCreateAlias(entityResult.entityClass()), entityResult.entityClass().getName(), getPropertyResults(entityResult.entityClass(), definition.addQueryReturn(mappedReturn);
public void doSecondPass(Map persistentClasses) throws MappingException { ResultSetMappingDefinition definition = new ResultSetMappingDefinition( ann.name() ); log.info( "Binding resultset mapping: {}", definition.getName() ); LockMode.READ ); definition.addQueryReturn( result ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( mappings.getObjectNameNormalizer().normalizeIdentifierQuoting(
@Override public void addResultSetMapping(ResultSetMappingDefinition resultSetMappingDefinition) { if ( resultSetMappingDefinition == null ) { throw new IllegalArgumentException( "Result-set mapping was null" ); } final String name = resultSetMappingDefinition.getName(); if ( name == null ) { throw new IllegalArgumentException( "Result-set mapping name is null: " + resultSetMappingDefinition ); } if ( defaultSqlResultSetMappingNames.contains( name ) ) { return; } applyResultSetMapping( resultSetMappingDefinition ); }
@Override public void doSecondPass(Map persistentClasses) throws MappingException { final ResultSetMappingDefinition resultSetMappingDefinition = ResultSetMappingBinder.bind( implicitResultSetMappingDefinition, context ); context.getMetadataCollector().addResultSetMapping( resultSetMappingDefinition ); NativeSQLQueryReturn[] newQueryReturns = resultSetMappingDefinition.getQueryReturns(); final NamedSQLQueryDefinition queryDefinition = context.getMetadataCollector().getNamedNativeQueryDefinition( queryName ); if ( queryDefinition != null ) { queryDefinition.addQueryReturns( newQueryReturns ); } } }
resultSetName = path + '.' + resultSetName; ResultSetMappingDefinition definition = new ResultSetMappingDefinition( resultSetName );
public void doSecondPass(Map persistentClasses) throws MappingException { ResultSetMappingDefinition definition = new ResultSetMappingDefinition( ann.name() ); LOG.debugf( "Binding result set mapping: %s", definition.getName() ); LockMode.READ ); definition.addQueryReturn( result ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( mappings.getObjectNameNormalizer().normalizeIdentifierQuoting(
public NamedQueryRepository( Iterable<NamedQueryDefinition> namedQueryDefinitions, Iterable<NamedSQLQueryDefinition> namedSqlQueryDefinitions, Iterable<ResultSetMappingDefinition> namedSqlResultSetMappings, Map<String, ProcedureCallMemento> namedProcedureCalls) { final HashMap<String, NamedQueryDefinition> namedQueryDefinitionMap = new HashMap<String, NamedQueryDefinition>(); for ( NamedQueryDefinition namedQueryDefinition : namedQueryDefinitions ) { namedQueryDefinitionMap.put( namedQueryDefinition.getName(), namedQueryDefinition ); } this.namedQueryDefinitionMap = Collections.unmodifiableMap( namedQueryDefinitionMap ); final HashMap<String, NamedSQLQueryDefinition> namedSqlQueryDefinitionMap = new HashMap<String, NamedSQLQueryDefinition>(); for ( NamedSQLQueryDefinition namedSqlQueryDefinition : namedSqlQueryDefinitions ) { namedSqlQueryDefinitionMap.put( namedSqlQueryDefinition.getName(), namedSqlQueryDefinition ); } this.namedSqlQueryDefinitionMap = Collections.unmodifiableMap( namedSqlQueryDefinitionMap ); final HashMap<String, ResultSetMappingDefinition> namedSqlResultSetMappingMap = new HashMap<String, ResultSetMappingDefinition>(); for ( ResultSetMappingDefinition resultSetMappingDefinition : namedSqlResultSetMappings ) { namedSqlResultSetMappingMap.put( resultSetMappingDefinition.getName(), resultSetMappingDefinition ); } this.namedSqlResultSetMappingMap = Collections.unmodifiableMap( namedSqlResultSetMappingMap ); this.procedureCallMementoMap = Collections.unmodifiableMap( namedProcedureCalls ); }
); this.queryReturns = new ArrayList<>( Arrays.asList( definition.getQueryReturns() ) );
public void doSecondPass(Map persistentClasses) throws MappingException { ResultSetMappingDefinition definition = new ResultSetMappingDefinition( ann.name() ); LOG.debugf( "Binding result set mapping: %s", definition.getName() ); LockMode.READ ); definition.addQueryReturn( result ); definition.addQueryReturn( new NativeSQLQueryScalarReturn( mappings.getObjectNameNormalizer().normalizeIdentifierQuoting(