@Override public Object semiResolve(Object value, SharedSessionContractImplementor session, Object owner) throws HibernateException { //note that this implementation is kinda broken //for components with many-to-one associations return resolve( value, session, owner ); }
@Override public Object nullSafeGet(ResultSet rs, String[] names, SharedSessionContractImplementor session, Object owner) throws HibernateException, SQLException { return resolve( hydrate( rs, names, session, owner ), session, owner ); }
@Override public Object extract(CallableStatement statement, String[] paramNames, SharedSessionContractImplementor session) throws SQLException { // for this form to work all sub-property spans must be one (1)... Object[] values = new Object[propertySpan]; int indx = 0; boolean notNull = false; for ( String paramName : paramNames ) { // we know this cast is safe from canDoExtraction final ProcedureParameterExtractionAware propertyType = (ProcedureParameterExtractionAware) propertyTypes[indx]; final Object value = propertyType.extract( statement, new String[] {paramName}, session ); if ( value == null ) { if ( isKey ) { return null; //different nullability rules for pk/fk } } else { notNull = true; } values[indx] = value; } if ( !notNull ) { values = null; } return resolve( values, session, null ); }
@Override public Object extract(CallableStatement statement, int startIndex, SharedSessionContractImplementor session) throws SQLException { Object[] values = new Object[propertySpan]; int currentIndex = startIndex; boolean notNull = false; for ( int i = 0; i < propertySpan; i++ ) { // we know this cast is safe from canDoExtraction final Type propertyType = propertyTypes[i]; final Object value = ((ProcedureParameterExtractionAware) propertyType).extract( statement, currentIndex, session ); if ( value == null ) { if ( isKey ) { return null; //different nullability rules for pk/fk } } else { notNull = true; } values[i] = value; currentIndex += propertyType.getColumnSpan( session.getFactory() ); } if ( !notNull ) { values = null; } return resolve( values, session, null ); }
@Override public Object semiResolve(Object value, SessionImplementor session, Object owner) throws HibernateException { //note that this implementation is kinda broken //for components with many-to-one associations return resolve( value, session, owner ); }
public Object semiResolve(Object value, SessionImplementor session, Object owner) throws HibernateException { //note that this implementation is kinda broken //for components with many-to-one associations return resolve( value, session, owner ); }
@Override public Object semiResolve(Object value, SessionImplementor session, Object owner) throws HibernateException { //note that this implementation is kinda broken //for components with many-to-one associations return resolve( value, session, owner ); }
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException { return resolve( hydrate( rs, names, session, owner ), session, owner ); }
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException { return resolve( hydrate( rs, names, session, owner ), session, owner ); }
public Object nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) throws HibernateException, SQLException { return resolve( hydrate( rs, names, session, owner ), session, owner ); }