Ejb3Column[] columns; if ( formulaAnn != null ) { Ejb3Column formulaColumn = new Ejb3Column(); formulaColumn.setFormula( formulaAnn.value() ); formulaColumn.setImplicit( false ); formulaColumn.setBuildingContext( context ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.bind(); columns = new Ejb3Column[] { formulaColumn }; columns = buildImplicitColumn( inferredData, suffixForDefaultColumnName, Ejb3Column column = new Ejb3Column(); applyColumnDefault( column, inferredData ); column.setImplicit( false ); column.setSqlType( sqlType ); column.setLength( col.length() ); column.setPrecision( col.precision() ); column.setScale( col.scale() ); if ( StringHelper.isEmpty( columnName ) && ! StringHelper.isEmpty( suffixForDefaultColumnName ) ) { column.setLogicalColumnName( inferredData.getPropertyName() + suffixForDefaultColumnName ); column.setLogicalColumnName( columnName ); column.setPropertyName(
Ejb3Column[] metaColumns = Ejb3Column.buildColumnFromAnnotation( new javax.persistence.Column[] { metaColumn }, null, column.setTable( value.getTable() ); column.linkWithValue( value ); Ejb3Column.checkPropertyConsistency( columns, propertyHolder.getEntityName() + "." + propertyName ); for (Ejb3JoinColumn column : columns) { column.linkWithValue( value );
Column ann = property.getAnnotation( Column.class ); Formula formulaAnn = property.getAnnotation( Formula.class ); columns = Ejb3Column.buildColumnFromAnnotation( new Column[] { ann }, formulaAnn, columns = Ejb3Column.buildColumnFromAnnotation( anns.columns(), null, columns = Ejb3Column.buildColumnFromAnnotation( null, null, col.forceNotNull();
public void addProperty(Property prop, Ejb3Column[] columns, XClass declaringClass) { //Ejb3Column.checkPropertyConsistency( ); //already called earlier if ( columns != null && columns[0].isSecondary() ) { //TODO move the getJoin() code here? final Join join = columns[0].getJoin(); addPropertyToJoin( prop, declaringClass, join ); } else { addProperty( prop, declaringClass ); } }
public static void checkPropertyConsistency(Ejb3Column[] columns, String propertyName) { int nbrOfColumns = columns.length; if ( nbrOfColumns > 1 ) { for (int currentIndex = 1; currentIndex < nbrOfColumns; currentIndex++) { if (columns[currentIndex].isFormula() || columns[currentIndex - 1].isFormula()) { continue; } if ( columns[currentIndex].isInsertable() != columns[currentIndex - 1].isInsertable() ) { throw new AnnotationException( "Mixing insertable and non insertable columns in a property is not allowed: " + propertyName ); } if ( columns[currentIndex].isNullable() != columns[currentIndex - 1].isNullable() ) { throw new AnnotationException( "Mixing nullable and non nullable columns in a property is not allowed: " + propertyName ); } if ( columns[currentIndex].isUpdatable() != columns[currentIndex - 1].isUpdatable() ) { throw new AnnotationException( "Mixing updatable and non updatable columns in a property is not allowed: " + propertyName ); } if ( !columns[currentIndex].getTable().equals( columns[currentIndex - 1].getTable() ) ) { throw new AnnotationException( "Mixing different tables in a property is not allowed: " + propertyName ); } } } }
Nullability nullability, MetadataBuildingContext context) { Ejb3Column column = new Ejb3Column(); Ejb3Column[] columns = new Ejb3Column[1]; columns[0] = column; && inferredData.getClassOrElement().isPrimitive() && !inferredData.getProperty().isArray() ) { column.setNullable( false ); column.setLength( DEFAULT_COLUMN_LENGTH ); final String propertyName = inferredData.getPropertyName(); column.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); column.setPropertyHolder( propertyHolder ); column.setJoins( secondaryTables ); column.setBuildingContext( context ); column.setLogicalColumnName( propertyName + suffixForDefaultColumnName ); column.setImplicit( false ); column.setImplicit( true ); applyColumnDefault( column, inferredData ); column.extractDataFromPropertyData( inferredData ); column.bind(); return columns;
Ejb3Column[] columns; if ( formulaAnn != null ) { Ejb3Column formulaColumn = new Ejb3Column(); formulaColumn.setFormula( formulaAnn.value() ); formulaColumn.setImplicit( false ); formulaColumn.setMappings( mappings ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.bind(); columns = new Ejb3Column[] { formulaColumn }; columns = buildImplicitColumn( inferredData, suffixForDefaultColumnName, final String tableName = nameNormalizer.normalizeIdentifierQuoting( col.table() ); final String columnName = nameNormalizer.normalizeIdentifierQuoting( col.name() ); Ejb3Column column = new Ejb3Column(); column.setImplicit( false ); column.setSqlType( sqlType ); column.setLength( col.length() ); column.setPrecision( col.precision() ); column.setScale( col.scale() ); if ( StringHelper.isEmpty( columnName ) && ! StringHelper.isEmpty( suffixForDefaultColumnName ) ) { column.setLogicalColumnName( inferredData.getPropertyName() + suffixForDefaultColumnName ); column.setLogicalColumnName( columnName ); column.setPropertyName( BinderHelper.getRelativePath( propertyHolder, inferredData.getPropertyName() )
Nullability nullability, ExtendedMappings mappings) { Ejb3Column column = new Ejb3Column(); Ejb3Column[] columns = new Ejb3Column[1]; columns[0] = column; && inferredData.getClassOrElement().isPrimitive() && !inferredData.getProperty().isArray() ) { column.setNullable( false ); column.setLength( DEFAULT_COLUMN_LENGTH ); final String propertyName = inferredData.getPropertyName(); column.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); column.setPropertyHolder( propertyHolder ); column.setJoins( secondaryTables ); column.setMappings( mappings ); column.setLogicalColumnName( propertyName + suffixForDefaultColumnName ); column.setImplicit( false ); column.setImplicit( true ); column.bind(); return columns;
if ( elementColumns == null || elementColumns.length == 0 ) { elementColumns = new Ejb3Column[1]; Ejb3Column column = new Ejb3Column(); column.setImplicit( false ); column.setNullable( true ); column.setLength( Ejb3Column.DEFAULT_COLUMN_LENGTH ); column.setLogicalColumnName( Collection.DEFAULT_KEY_COLUMN_NAME ); column.setJoins( new HashMap<String, Join>() ); column.setBuildingContext( buildingContext ); column.bind(); elementColumns[0] = column; column.setTable( mapValue.getCollectionTable() );
Nullability nullability, MetadataBuildingContext context) { Ejb3Column column = new Ejb3Column( context ); Ejb3Column[] columns = new Ejb3Column[1]; columns[0] = column; && inferredData.getClassOrElement().isPrimitive() && !inferredData.getProperty().isArray() ) { column.setNullable( false ); column.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); column.setPropertyHolder( propertyHolder ); column.setJoins( secondaryTables ); column.setLogicalColumnName( buildLogicalName( context.getMetadataCollector().getDatabase(), propertyName + suffixForDefaultColumnName column.setImplicit( false ); column.setImplicit( true ); applyColumnDefault( column, inferredData ); column.extractDataFromPropertyData( inferredData ); column.bind(); return columns;
Column ann = property.getAnnotation( Column.class ); Formula formulaAnn = property.getAnnotation( Formula.class ); elementColumns = Ejb3Column.buildColumnFromAnnotation( new Column[] { ann }, formulaAnn, elementColumns = Ejb3Column.buildColumnFromAnnotation( anns.columns(), null, nullability, propertyHolder, virtualProperty, entityBinder.getSecondaryTables(), mappings elementColumns = Ejb3Column.buildColumnFromAnnotation( null, null, Ejb3Column[] mapColumns = Ejb3Column.buildColumnFromAnnotation( keyColumns, null, col.forceNotNull(); column.addIndex( index, inSecondPass ); if ( columns != null ) { for ( Ejb3Column column : columns ) { column.addIndex( index, inSecondPass ); if ( joinColumns != null ) { for ( Ejb3Column column : joinColumns ) { column.addUniqueKey( "_UniqueKey", inSecondPass );
Column ann = property.getAnnotation( Column.class ); Formula formulaAnn = property.getAnnotation( Formula.class ); elementColumns = Ejb3Column.buildColumnFromAnnotation( new Column[] { ann }, formulaAnn, elementColumns = Ejb3Column.buildColumnFromAnnotation( anns.columns(), null, elementColumns = Ejb3Column.buildColumnFromAnnotation( null, null, Ejb3Column[] mapColumns = Ejb3Column.buildColumnFromAnnotation( keyColumns, null, if ( isId && col.isFormula() ) { throw new CannotForceNonNullableException( String.format( "Identifier property [%s] cannot contain formula mapping [%s]", HCANNHelper.annotatedElementSignature( property ), col.getFormulaString() col.forceNotNull(); column.addIndex( index, inSecondPass );
Column ann = property.getAnnotation( Column.class ); Formula formulaAnn = property.getAnnotation( Formula.class ); elementColumns = Ejb3Column.buildColumnFromAnnotation( new Column[] { ann }, formulaAnn, elementColumns = Ejb3Column.buildColumnFromAnnotation( anns.columns(), null, elementColumns = Ejb3Column.buildColumnFromAnnotation( null, null, Ejb3Column[] mapColumns = Ejb3Column.buildColumnFromAnnotation( keyColumns, null, if ( isId && col.isFormula() ) { throw new CannotForceNonNullableException( String.format( "Identifier property [%s] cannot contain formula mapping [%s]", HCANNHelper.annotatedElementSignature( property ), col.getFormulaString() col.forceNotNull(); column.addIndex( index, inSecondPass );
public void linkWithValue(SimpleValue value) { if ( formula != null ) { value.addFormula( formula ); } else { getMappingColumn().setValue( value ); value.addColumn( getMappingColumn(), insertable, updatable ); value.getTable().addColumn( getMappingColumn() ); addColumnBinding( value ); table = value.getTable(); } }
public void bind() { if ( StringHelper.isNotEmpty( formulaString ) ) { LOG.debugf( "Binding formula %s", formulaString ); formula = new Formula(); formula.setFormula( formulaString ); } else { initMappingColumn( logicalColumnName, propertyName, length, precision, scale, nullable, sqlType, unique, true ); if ( defaultValue != null ) { mappingColumn.setDefaultValue( defaultValue ); } if ( LOG.isDebugEnabled() ) { LOG.debugf( "Binding column: %s", toString() ); } } }
this.table = column.getTable(); final PropertyHolder propertyHolder = column.getPropertyHolder(); final Property property = persistentClass.getProperty( column.getPropertyName() ); addConstraintToColumn( buildingContext.getMetadataCollector() .getLogicalColumnName( table, column.getMappingColumn().getQuotedName() ) );
private void validate() { //TODO check necessary params Ejb3Column.checkPropertyConsistency( columns, propertyName ); }
"id" ); Ejb3Column[] idColumns = Ejb3Column.buildColumnFromAnnotation( collectionIdAnn.columns(), null, idColumn.setNullable(false);
public void doSecondPass(Map persistentClasses) throws MappingException { if ( columns != null ) { for (String columnName : columns) { addConstraintToColumn( columnName ); } } if ( column != null ) { this.table = column.getTable(); addConstraintToColumn( mappings.getLogicalColumnName( column.getMappingColumn().getQuotedName(), table ) ); } }
@Override public String toString() { return "Ejb3Column" + "{table=" + getTable() + ", mappingColumn=" + mappingColumn.getName() + ", insertable=" + insertable + ", updatable=" + updatable + ", unique=" + unique + '}'; } }