final ForeignKeyDirection foreignKeyDirection = !BinderHelper.isEmptyAnnotationValue( mappedBy ) ? ForeignKeyDirection.TO_PARENT : ForeignKeyDirection.FROM_PARENT; if ( BinderHelper.isEmptyAnnotationValue( mappedBy ) ) { throw new MappingException( "Unable to find entity: " + value.getReferencedEntityName() ); otherSideProperty = BinderHelper.findPropertyByName( otherSide, mappedBy );
String syntheticPropertyName = propertyNameBuffer.toString(); Object columnOwner = findColumnOwner( ownerEntity, columns[0].getReferencedColumn(), context ); List<Property> properties = findPropertiesByColumns( columnOwner, columns, context ); embeddedComp.setComponentClassName( embeddedComp.getOwner().getClassName() ); for (Property property : properties) { Property clone = BinderHelper.shallowCopy( property ); clone.setInsertable( false ); clone.setUpdateable( false );
public void doSecondPass(java.util.Map persistentClasses) throws MappingException { if ( value instanceof ManyToOne ) { ManyToOne manyToOne = (ManyToOne) value; PersistentClass ref = (PersistentClass) persistentClasses.get( manyToOne.getReferencedEntityName() ); if ( ref == null ) { throw new AnnotationException( "@OneToOne or @ManyToOne on " + StringHelper.qualify( entityClassName, path ) + " references an unknown entity: " + manyToOne.getReferencedEntityName() ); } manyToOne.setPropertyName( path ); BinderHelper.createSyntheticPropertyReference( columns, ref, null, manyToOne, false, buildingContext ); TableBinder.bindFk( ref, null, columns, manyToOne, unique, buildingContext ); /* * HbmMetadataSourceProcessorImpl does this only when property-ref != null, but IMO, it makes sense event if it is null */ if ( !manyToOne.isIgnoreNotFound() ) manyToOne.createPropertyRefConstraints( persistentClasses ); } else if ( value instanceof OneToOne ) { value.createForeignKey(); } else { throw new AssertionFailure( "FkSecondPass for a wrong value type: " + value.getClass().getName() ); } } }
public static void bindAnyMetaDefs(XAnnotatedElement annotatedElement, MetadataBuildingContext context) { AnyMetaDef defAnn = annotatedElement.getAnnotation( AnyMetaDef.class ); AnyMetaDefs defsAnn = annotatedElement.getAnnotation( AnyMetaDefs.class ); boolean mustHaveName = XClass.class.isAssignableFrom( annotatedElement.getClass() ) || XPackage.class.isAssignableFrom( annotatedElement.getClass() ); if ( defAnn != null ) { checkAnyMetaDefValidity( mustHaveName, defAnn, annotatedElement ); bindAnyMetaDef( defAnn, context ); } if ( defsAnn != null ) { for (AnyMetaDef def : defsAnn.value()) { checkAnyMetaDefValidity( mustHaveName, def, annotatedElement ); bindAnyMetaDef( def, context ); } } }
MetadataBuildingContext buildingContext) { if ( ann != null ) { if ( BinderHelper.isEmptyAnnotationValue( mappedBy ) ) { throw new AnnotationException( "Illegal attempt to define a @JoinColumn with a mappedBy association: " + BinderHelper.getRelativePath( propertyHolder, propertyName ) ); joinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); joinColumn.setImplicit( false ); joinColumn.bind(); joinColumn.setPropertyHolder( propertyHolder ); joinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) );
Property mapProperty = BinderHelper.findPropertyByName( associatedClass, mapKeyPropertyName ); if ( mapProperty == null ) { throw new AnnotationException(
/** * build join formula */ public static Ejb3JoinColumn buildJoinFormula( JoinFormula ann, String mappedBy, Map<String, Join> joins, PropertyHolder propertyHolder, String propertyName, MetadataBuildingContext buildingContext) { Ejb3JoinColumn formulaColumn = new Ejb3JoinColumn(); formulaColumn.setFormula( ann.value() ); formulaColumn.setReferencedColumn(ann.referencedColumnName()); formulaColumn.setBuildingContext( buildingContext ); formulaColumn.setPropertyHolder( propertyHolder ); formulaColumn.setJoins( joins ); formulaColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); formulaColumn.bind(); return formulaColumn; }
throw new AssertionFailure( "Missing @Any annotation: " + BinderHelper.getPath( propertyHolder, inferredData ) ); Any value = BinderHelper.buildAnyValue( anyAnn.metaDef(), columns,
bindTypeDefs( clazzToProcess, context ); bindFetchProfiles( clazzToProcess, context ); BinderHelper.bindAnyMetaDefs( clazzToProcess, context ); jsc.setKey( key ); ForeignKey fk = clazzToProcess.getAnnotation( ForeignKey.class ); if ( fk != null && !BinderHelper.isEmptyAnnotationValue( fk.name() ) ) { key.setForeignKeyName( fk.name() );
boolean mappedBy = !BinderHelper.isEmptyAnnotationValue( joinColumns[0].getMappedBy() ); if ( mappedBy ) { if ( !isCollectionOfEntities ) { if ( fk != null && !BinderHelper.isEmptyAnnotationValue( fk.name() ) ) { element.setForeignKeyName( fk.name() ); column.setTable( collValue.getCollectionTable() ); Any any = BinderHelper.buildAnyValue( anyAnn.metaDef(), inverseJoinColumns,
if ( metaAnnDef != null ) { bindAnyMetaDefs( inferredData.getProperty(), context );
Object columnOwner = BinderHelper.findColumnOwner( referencedEntity, columns[0].getReferencedColumn(),
Property mapProperty = BinderHelper.findPropertyByName( associatedClass, mapKeyPropertyName ); if ( mapProperty == null ) { throw new AnnotationException( if (mapKeyAnn != null && ! BinderHelper.isDefault( mapKeyAnn.type().type() ) ) { elementBinder.setExplicitType( mapKeyAnn.type() );
property = referencedClass.getProperty(propertyName); Property clone = BinderHelper.shallowCopy(property); clone.setInsertable(false); clone.setUpdateable(false);
) { if ( ann != null ) { if ( BinderHelper.isDefault( mappedBy ) ) { throw new AnnotationException( "Illegal attempt to define a @JoinColumn with a mappedBy association: " + BinderHelper.getRelativePath( propertyHolder, propertyName ) ); joinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); joinColumn.setImplicit( false ); joinColumn.setMappings( mappings ); joinColumn.setPropertyHolder( propertyHolder ); joinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) );
boolean mappedBy = !BinderHelper.isDefault( joinColumns[0].getMappedBy() ); if ( mappedBy ) { if ( !isCollectionOfEntities ) { if ( !BinderHelper.isDefault( fkName ) ) element.setForeignKeyName( fkName ); column.setTable( collValue.getCollectionTable() ); Any any = BinderHelper.buildAnyValue( anyAnn.metaDef(), inverseJoinColumns, anyAnn.metaColumn(), inferredData, cascadeDeleteEnabled, Nullability.NO_CONSTRAINT, propertyHolder, new EntityBinder(), true, mappings );
bindTypeDefs( clazzToProcess, mappings ); bindFetchProfiles( clazzToProcess, mappings ); BinderHelper.bindAnyMetaDefs( clazzToProcess, mappings ); jsc.setKey( key ); ForeignKey fk = clazzToProcess.getAnnotation( ForeignKey.class ); if ( fk != null && !BinderHelper.isDefault( fk.name() ) ) { key.setForeignKeyName( fk.name() );
Property p = BinderHelper.findPropertyByName( component, property ); if ( p == null ) { throw new AnnotationException(
currentJoinColumn.setBuildingContext( buildingContext ); currentJoinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); currentJoinColumn.setMappedBy( mappedBy ); currentJoinColumn.setJoins( secondaryTables ); currentJoinColumn.setBuildingContext( buildingContext ); currentJoinColumn.setPropertyName( BinderHelper.getRelativePath( propertyHolder, propertyName ) ); currentJoinColumn.setMappedBy( mappedBy ); currentJoinColumn.setJoinAnnotation( annJoin, propertyName );
public static void bindAnyMetaDefs(XAnnotatedElement annotatedElement, ExtendedMappings mappings) { AnyMetaDef defAnn = annotatedElement.getAnnotation( AnyMetaDef.class ); AnyMetaDefs defsAnn = annotatedElement.getAnnotation( AnyMetaDefs.class ); boolean mustHaveName = XClass.class.isAssignableFrom( annotatedElement.getClass() ) || XPackage.class.isAssignableFrom( annotatedElement.getClass() ); if ( defAnn != null ) { checkAnyMetaDefValidity( mustHaveName, defAnn, annotatedElement ); bindAnyMetaDef( defAnn, mappings ); } if ( defsAnn != null ) { for (AnyMetaDef def : defsAnn.value()) { checkAnyMetaDefValidity( mustHaveName, def, annotatedElement ); bindAnyMetaDef( def, mappings ); } } }