@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); } }
@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); } }
@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); }
/** * Override persistent class on oneToMany Cases for late settings * Must only be used on second level pass binding */ public void setPersistentClass( PersistentClass persistentClass, Map<String, Join> joins, Map<XClass, InheritanceState> inheritanceStatePerClass) { // TODO shouldn't we deduce the classname from the persistentclasS? this.propertyHolder = PropertyHolderBuilder.buildPropertyHolder( persistentClass, joins, getBuildingContext(), inheritanceStatePerClass ); }
@Override public void redefineColumnName(String columnName, String propertyName, boolean applyNamingStrategy) { if ( StringHelper.isNotEmpty( columnName ) ) { if ( applyNamingStrategy ) { getMappingColumn().setName( getBuildingContext().getBuildingOptions().getPhysicalNamingStrategy().toPhysicalColumnName( getBuildingContext().getMetadataCollector().getDatabase().toIdentifier( columnName ), getBuildingContext().getMetadataCollector().getDatabase().getJdbcEnvironment() ).render() ); } else { getMappingColumn().setName( columnName ); } } }
@Override protected void addColumnBinding(SimpleValue value) { if ( StringHelper.isEmpty( mappedBy ) ) { // was the column explicitly quoted in the mapping/annotation // TODO: in metamodel, we need to better split global quoting and explicit quoting w/ respect to logical names boolean isLogicalColumnQuoted = StringHelper.isQuoted( getLogicalColumnName() ); final ObjectNameNormalizer nameNormalizer = getBuildingContext().getObjectNameNormalizer(); final String logicalColumnName = nameNormalizer.normalizeIdentifierQuotingAsString( getLogicalColumnName() ); final String referencedColumn = nameNormalizer.normalizeIdentifierQuotingAsString( getReferencedColumn() ); final String unquotedLogColName = StringHelper.unquote( logicalColumnName ); final String unquotedRefColumn = StringHelper.unquote( referencedColumn ); String logicalCollectionColumnName = StringHelper.isNotEmpty( unquotedLogColName ) ? unquotedLogColName : getPropertyName() + '_' + unquotedRefColumn; logicalCollectionColumnName = getBuildingContext().getMetadataCollector() .getDatabase() .getJdbcEnvironment() .getIdentifierHelper() .toIdentifier( logicalCollectionColumnName, isLogicalColumnQuoted ) .render(); getBuildingContext().getMetadataCollector().addColumnNameBinding( value.getTable(), logicalCollectionColumnName, getMappingColumn() ); } }
setImplicit( false ); if ( !BinderHelper.isEmptyAnnotationValue( annJoin.columnDefinition() ) ) { setSqlType( getBuildingContext().getObjectNameNormalizer().applyGlobalQuoting( annJoin.columnDefinition() ) ); final Identifier logicalIdentifier = getBuildingContext().getMetadataCollector() .getDatabase() .toIdentifier( annJoin.table() ); final Identifier physicalIdentifier = getBuildingContext().getBuildingOptions() .getPhysicalNamingStrategy() .toPhysicalTableName( logicalIdentifier, getBuildingContext().getMetadataCollector().getDatabase().getJdbcEnvironment() ); setExplicitTableName( physicalIdentifier.render( getBuildingContext().getMetadataCollector().getDatabase().getDialect() ) );
private String buildDefaultColumnName(final PersistentClass referencedEntity, final String logicalReferencedColumn) { final Database database = getBuildingContext().getMetadataCollector().getDatabase(); final ImplicitNamingStrategy implicitNamingStrategy = getBuildingContext().getBuildingOptions().getImplicitNamingStrategy(); final PhysicalNamingStrategy physicalNamingStrategy = getBuildingContext().getBuildingOptions().getPhysicalNamingStrategy(); final String logicalTableName = getBuildingContext().getMetadataCollector().getLogicalTableName( referencedEntity.getTable() ); columnIdentifier = getBuildingContext().getBuildingOptions().getImplicitNamingStrategy().determineJoinColumnName( new ImplicitJoinColumnNameSource() { private final EntityNaming entityNaming = new EntityNaming() { getBuildingContext().getMetadataCollector().getLogicalTableName( referencedEntity.getTable() ) );
public void linkValueUsingDefaultColumnNaming( Column referencedColumn, PersistentClass referencedEntity, SimpleValue value) { String logicalReferencedColumn = getBuildingContext().getMetadataCollector().getLogicalColumnName( referencedEntity.getTable(), referencedColumn.getQuotedName() ); String columnName = buildDefaultColumnName( referencedEntity, logicalReferencedColumn ); //yuk side effect on an implicit column setLogicalColumnName( columnName ); setReferencedColumn( logicalReferencedColumn ); initMappingColumn( columnName, null, referencedColumn.getLength(), referencedColumn.getPrecision(), referencedColumn.getScale(), getMappingColumn() != null ? getMappingColumn().isNullable() : false, referencedColumn.getSqlType(), getMappingColumn() != null ? getMappingColumn().isUnique() : false, false ); linkWithValue( value ); }
@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); } }
@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); }
@Override public MetadataBuildingContext getBuildingContext() { return Ejb3JoinColumn.this.getBuildingContext(); } }
/** * Override persistent class on oneToMany Cases for late settings * Must only be used on second level pass binding */ public void setPersistentClass( PersistentClass persistentClass, Map<String, Join> joins, Map<XClass, InheritanceState> inheritanceStatePerClass) { // TODO shouldn't we deduce the classname from the persistentclasS? this.propertyHolder = PropertyHolderBuilder.buildPropertyHolder( persistentClass, joins, getBuildingContext(), inheritanceStatePerClass ); }
setImplicit( false ); if ( !BinderHelper.isEmptyAnnotationValue( annJoin.columnDefinition() ) ) { setSqlType( getBuildingContext().getObjectNameNormalizer().applyGlobalQuoting( annJoin.columnDefinition() ) ); final Identifier logicalIdentifier = getBuildingContext().getMetadataCollector() .getDatabase() .toIdentifier( annJoin.table() ); final Identifier physicalIdentifier = getBuildingContext().getBuildingOptions() .getPhysicalNamingStrategy() .toPhysicalTableName( logicalIdentifier, getBuildingContext().getMetadataCollector().getDatabase().getJdbcEnvironment() ); setExplicitTableName( physicalIdentifier.render( getBuildingContext().getMetadataCollector().getDatabase().getDialect() ) );
private Identifier buildDefaultColumnName(final PersistentClass referencedEntity, final String logicalReferencedColumn) { final Database database = getBuildingContext().getMetadataCollector().getDatabase(); final ImplicitNamingStrategy implicitNamingStrategy = getBuildingContext().getBuildingOptions().getImplicitNamingStrategy(); columnIdentifier = getBuildingContext().getBuildingOptions().getImplicitNamingStrategy().determineJoinColumnName( new ImplicitJoinColumnNameSource() { private final EntityNaming entityNaming = new EntityNaming() {