Package javax.persistence

Examples of javax.persistence.JoinTable


        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        NotFound notFound = property.getAnnotation( NotFound.class );
        boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
        }
        final boolean mandatory = !ann.optional() || forcePersist;
        bindManyToOne(
            getCascadeStrategy( ann.cascade(), hibernateCascade, false, forcePersist ),
            joinColumns,
            !mandatory,
            ignoreNotFound, onDeleteCascade,
            ToOneBinder.getTargetEntity( inferredData, mappings ),
            propertyHolder,
            inferredData, false, isIdentifierMapper,
            inSecondPass, propertyBinder, mappings
        );
      }
      else if ( property.isAnnotationPresent( OneToOne.class ) ) {
        OneToOne ann = property.getAnnotation( OneToOne.class );

        //check validity
        if ( property.isAnnotationPresent( Column.class )
            || property.isAnnotationPresent( Columns.class ) ) {
          throw new AnnotationException(
              "@Column(s) not allowed on a @OneToOne property: "
                  + BinderHelper.getPath( propertyHolder, inferredData )
          );
        }

        //FIXME support a proper PKJCs
        boolean trueOneToOne = property.isAnnotationPresent( PrimaryKeyJoinColumn.class )
            || property.isAnnotationPresent( PrimaryKeyJoinColumns.class );
        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        NotFound notFound = property.getAnnotation( NotFound.class );
        boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
        }
        //MapsId means the columns belong to the pk => not null
        //@PKJC must be constrained
        final boolean mandatory = !ann.optional() || forcePersist || trueOneToOne;
        bindOneToOne(
            getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ),
            joinColumns,
            !mandatory,
            getFetchMode( ann.fetch() ),
            ignoreNotFound, onDeleteCascade,
            ToOneBinder.getTargetEntity( inferredData, mappings ),
            propertyHolder,
            inferredData,
            ann.mappedBy(),
            trueOneToOne,
            isIdentifierMapper,
            inSecondPass,
            propertyBinder,
            mappings
        );
      }
      else if ( property.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) {

        //check validity
        if ( property.isAnnotationPresent( Column.class )
            || property.isAnnotationPresent( Columns.class ) ) {
          throw new AnnotationException(
              "@Column(s) not allowed on a @Any property: "
                  + BinderHelper.getPath( propertyHolder, inferredData )
          );
        }

        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
View Full Code Here


      PropertyData inferredData,
      String mappedBy) {
    TableBinder associationTableBinder = new TableBinder();
    JoinColumn[] annJoins;
    JoinColumn[] annInverseJoins;
    JoinTable assocTable = propertyHolder.getJoinTable( property );
    CollectionTable collectionTable = property.getAnnotation( CollectionTable.class );

    if ( assocTable != null || collectionTable != null ) {

      final String catalog;
      final String schema;
      final String tableName;
      final UniqueConstraint[] uniqueConstraints;
      final JoinColumn[] joins;
      final JoinColumn[] inverseJoins;

      //JPA 2 has priority
      if ( collectionTable != null ) {
        catalog = collectionTable.catalog();
        schema = collectionTable.schema();
        tableName = collectionTable.name();
        uniqueConstraints = collectionTable.uniqueConstraints();
        joins = collectionTable.joinColumns();
        inverseJoins = null;
      }
      else {
        catalog = assocTable.catalog();
        schema = assocTable.schema();
        tableName = assocTable.name();
        uniqueConstraints = assocTable.uniqueConstraints();
        joins = assocTable.joinColumns();
        inverseJoins = assocTable.inverseJoinColumns();
      }

      collectionBinder.setExplicitAssociationTable( true );

      if ( !BinderHelper.isEmptyAnnotationValue( schema ) ) {
View Full Code Here

        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        NotFound notFound = property.getAnnotation( NotFound.class );
        boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
        }
        final boolean mandatory = !ann.optional() || forcePersist;
        bindManyToOne(
            getCascadeStrategy( ann.cascade(), hibernateCascade, false, forcePersist ),
            joinColumns,
            !mandatory,
            ignoreNotFound, onDeleteCascade,
            ToOneBinder.getTargetEntity( inferredData, mappings ),
            propertyHolder,
            inferredData, false, isIdentifierMapper,
            inSecondPass, propertyBinder, mappings
        );
      }
      else if ( property.isAnnotationPresent( OneToOne.class ) ) {
        OneToOne ann = property.getAnnotation( OneToOne.class );

        //check validity
        if ( property.isAnnotationPresent( Column.class )
            || property.isAnnotationPresent( Columns.class ) ) {
          throw new AnnotationException(
              "@Column(s) not allowed on a @OneToOne property: "
                  + BinderHelper.getPath( propertyHolder, inferredData )
          );
        }

        //FIXME support a proper PKJCs
        boolean trueOneToOne = property.isAnnotationPresent( PrimaryKeyJoinColumn.class )
            || property.isAnnotationPresent( PrimaryKeyJoinColumns.class );
        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        NotFound notFound = property.getAnnotation( NotFound.class );
        boolean ignoreNotFound = notFound != null && notFound.action().equals( NotFoundAction.IGNORE );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
        }
        //MapsId means the columns belong to the pk => not null
        //@PKJC must be constrained
          final boolean mandatory = !ann.optional() || forcePersist || trueOneToOne;
       
        bindOneToOne(
            getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ),
            joinColumns,
            !mandatory,
            getFetchMode( ann.fetch() ),
            ignoreNotFound, onDeleteCascade,
            ToOneBinder.getTargetEntity( inferredData, mappings ),
            propertyHolder,
            inferredData,
            ann.mappedBy(),
            trueOneToOne,
            isIdentifierMapper,
            inSecondPass,
            propertyBinder,
            mappings
        );
      }
      else if ( property.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) {

        //check validity
        if ( property.isAnnotationPresent( Column.class )
            || property.isAnnotationPresent( Columns.class ) ) {
          throw new AnnotationException(
              "@Column(s) not allowed on a @Any property: "
                  + BinderHelper.getPath( propertyHolder, inferredData )
          );
        }

        Cascade hibernateCascade = property.getAnnotation( Cascade.class );
        OnDelete onDeleteAnn = property.getAnnotation( OnDelete.class );
        boolean onDeleteCascade = onDeleteAnn != null && OnDeleteAction.CASCADE.equals( onDeleteAnn.action() );
        JoinTable assocTable = propertyHolder.getJoinTable( property );
        if ( assocTable != null ) {
          Join join = propertyHolder.addJoin( assocTable, false );
          for ( Ejb3JoinColumn joinColumn : joinColumns ) {
            joinColumn.setSecondaryTableName( join.getTable().getName() );
          }
View Full Code Here

      String mappedBy
  ) {
    TableBinder associationTableBinder = new TableBinder();
    JoinColumn[] annJoins;
    JoinColumn[] annInverseJoins;
    JoinTable assocTable = propertyHolder.getJoinTable( property );
    CollectionTable collectionTable = property.getAnnotation( CollectionTable.class );

    if ( assocTable != null || collectionTable != null ) {

      final String catalog;
      final String schema;
      final String tableName;
      final UniqueConstraint[] uniqueConstraints;
      final JoinColumn[] joins;
      final JoinColumn[] inverseJoins;

      //JPA 2 has priority
      if ( collectionTable != null ) {
        catalog = collectionTable.catalog();
        schema = collectionTable.schema();
        tableName = collectionTable.name();
        uniqueConstraints = collectionTable.uniqueConstraints();
        joins = collectionTable.joinColumns();
        inverseJoins = null;
      }
      else {
        catalog = assocTable.catalog();
        schema = assocTable.schema();
        tableName = assocTable.name();
        uniqueConstraints = assocTable.uniqueConstraints();
        joins = assocTable.joinColumns();
        inverseJoins = assocTable.inverseJoinColumns();
      }

      collectionBinder.setExplicitAssociationTable( true );

      if ( !BinderHelper.isDefault( schema ) ) {
View Full Code Here

        Field toField = relationship.getToField();

        RelationshipTranslation translation = new RelationshipTranslation();

        if (toField == null) {
            JoinTable t = fromField.getAnnotation(JoinTable.class);
            JoinColumn c = fromField.getAnnotation(JoinColumn.class);
            if (t != null) {
                analyzeJoinTable(translation, t);
            } else if (c != null) {
                //join column represents the column in the target table.
View Full Code Here

    private static RelationshipTranslation analyzeManyToMany(Edge relationship) {
        Field fromField = relationship.getFromField();
        Field toField = relationship.getToField();

        JoinTable t = fromField.getAnnotation(JoinTable.class);

        if (t == null) {
            t = toField.getAnnotation(JoinTable.class);
        }
View Full Code Here

    reader = getReader( Entity1.class, "field1", "many-to-one.orm4.xml" );
    assertAnnotationPresent( ManyToOne.class );
    assertAnnotationNotPresent( JoinColumn.class );
    assertAnnotationNotPresent( JoinColumns.class );
    assertAnnotationPresent( JoinTable.class );
    JoinTable joinTableAnno = reader.getAnnotation( JoinTable.class );
    assertEquals( "", joinTableAnno.catalog() );
    assertEquals( "", joinTableAnno.name() );
    assertEquals( "", joinTableAnno.schema() );
    assertEquals( 0, joinTableAnno.joinColumns().length );
    assertEquals( 0, joinTableAnno.inverseJoinColumns().length );
    assertEquals( 0, joinTableAnno.uniqueConstraints().length );
  }
View Full Code Here

    reader = getReader( Entity1.class, "field1", "many-to-one.orm5.xml" );
    assertAnnotationPresent( ManyToOne.class );
    assertAnnotationNotPresent( JoinColumn.class );
    assertAnnotationNotPresent( JoinColumns.class );
    assertAnnotationPresent( JoinTable.class );
    JoinTable joinTableAnno = reader.getAnnotation( JoinTable.class );
    assertEquals( "cat1", joinTableAnno.catalog() );
    assertEquals( "table1", joinTableAnno.name() );
    assertEquals( "schema1", joinTableAnno.schema() );

    // JoinColumns
    JoinColumn[] joinColumns = joinTableAnno.joinColumns();
    assertEquals( 2, joinColumns.length );
    assertEquals( "", joinColumns[0].name() );
    assertEquals( "", joinColumns[0].referencedColumnName() );
    assertEquals( "", joinColumns[0].table() );
    assertEquals( "", joinColumns[0].columnDefinition() );
    assertTrue( joinColumns[0].insertable() );
    assertTrue( joinColumns[0].updatable() );
    assertTrue( joinColumns[0].nullable() );
    assertFalse( joinColumns[0].unique() );
    assertEquals( "col1", joinColumns[1].name() );
    assertEquals( "col2", joinColumns[1].referencedColumnName() );
    assertEquals( "table2", joinColumns[1].table() );
    assertEquals( "int", joinColumns[1].columnDefinition() );
    assertFalse( joinColumns[1].insertable() );
    assertFalse( joinColumns[1].updatable() );
    assertFalse( joinColumns[1].nullable() );
    assertTrue( joinColumns[1].unique() );

    // InverseJoinColumns
    JoinColumn[] inverseJoinColumns = joinTableAnno.inverseJoinColumns();
    assertEquals( 2, inverseJoinColumns.length );
    assertEquals( "", inverseJoinColumns[0].name() );
    assertEquals( "", inverseJoinColumns[0].referencedColumnName() );
    assertEquals( "", inverseJoinColumns[0].table() );
    assertEquals( "", inverseJoinColumns[0].columnDefinition() );
    assertTrue( inverseJoinColumns[0].insertable() );
    assertTrue( inverseJoinColumns[0].updatable() );
    assertTrue( inverseJoinColumns[0].nullable() );
    assertFalse( inverseJoinColumns[0].unique() );
    assertEquals( "col3", inverseJoinColumns[1].name() );
    assertEquals( "col4", inverseJoinColumns[1].referencedColumnName() );
    assertEquals( "table3", inverseJoinColumns[1].table() );
    assertEquals( "int", inverseJoinColumns[1].columnDefinition() );
    assertFalse( inverseJoinColumns[1].insertable() );
    assertFalse( inverseJoinColumns[1].updatable() );
    assertFalse( inverseJoinColumns[1].nullable() );
    assertTrue( inverseJoinColumns[1].unique() );

    // UniqueConstraints
    UniqueConstraint[] uniqueConstraints = joinTableAnno
        .uniqueConstraints();
    assertEquals( 2, uniqueConstraints.length );
    assertEquals( "", uniqueConstraints[0].name() );
    assertEquals( 1, uniqueConstraints[0].columnNames().length );
    assertEquals( "col5", uniqueConstraints[0].columnNames()[0] );
View Full Code Here

    assertEquals( 2, overrides.length );
    //First, an association using join table
    assertEquals( "association1", overrides[0].name() );
    assertEquals( 0, overrides[0].joinColumns().length );

    JoinTable joinTableAnno = overrides[0].joinTable();
    assertEquals( "catalog1", joinTableAnno.catalog() );
    assertEquals( "table1", joinTableAnno.name() );
    assertEquals( "schema1", joinTableAnno.schema() );

    //JoinColumns
    JoinColumn[] joinColumns = joinTableAnno.joinColumns();
    assertEquals( 2, joinColumns.length );
    assertEquals( "", joinColumns[0].name() );
    assertEquals( "", joinColumns[0].referencedColumnName() );
    assertEquals( "", joinColumns[0].table() );
    assertEquals( "", joinColumns[0].columnDefinition() );
    assertTrue( joinColumns[0].insertable() );
    assertTrue( joinColumns[0].updatable() );
    assertTrue( joinColumns[0].nullable() );
    assertFalse( joinColumns[0].unique() );
    assertEquals( "col1", joinColumns[1].name() );
    assertEquals( "col2", joinColumns[1].referencedColumnName() );
    assertEquals( "table2", joinColumns[1].table() );
    assertEquals( "int", joinColumns[1].columnDefinition() );
    assertFalse( joinColumns[1].insertable() );
    assertFalse( joinColumns[1].updatable() );
    assertFalse( joinColumns[1].nullable() );
    assertTrue( joinColumns[1].unique() );

    //InverseJoinColumns
    JoinColumn[] inverseJoinColumns = joinTableAnno.inverseJoinColumns();
    assertEquals( 2, inverseJoinColumns.length );
    assertEquals( "", inverseJoinColumns[0].name() );
    assertEquals( "", inverseJoinColumns[0].referencedColumnName() );
    assertEquals( "", inverseJoinColumns[0].table() );
    assertEquals( "", inverseJoinColumns[0].columnDefinition() );
    assertTrue( inverseJoinColumns[0].insertable() );
    assertTrue( inverseJoinColumns[0].updatable() );
    assertTrue( inverseJoinColumns[0].nullable() );
    assertFalse( inverseJoinColumns[0].unique() );
    assertEquals( "col3", inverseJoinColumns[1].name() );
    assertEquals( "col4", inverseJoinColumns[1].referencedColumnName() );
    assertEquals( "table3", inverseJoinColumns[1].table() );
    assertEquals( "int", inverseJoinColumns[1].columnDefinition() );
    assertFalse( inverseJoinColumns[1].insertable() );
    assertFalse( inverseJoinColumns[1].updatable() );
    assertFalse( inverseJoinColumns[1].nullable() );
    assertTrue( inverseJoinColumns[1].unique() );

    //UniqueConstraints
    UniqueConstraint[] uniqueConstraints = joinTableAnno
        .uniqueConstraints();
    assertEquals( 2, uniqueConstraints.length );
    assertEquals( "", uniqueConstraints[0].name() );
    assertEquals( 1, uniqueConstraints[0].columnNames().length );
    assertEquals( "col5", uniqueConstraints[0].columnNames()[0] );
View Full Code Here

    assertAnnotationNotPresent( PrimaryKeyJoinColumn.class );
    assertAnnotationNotPresent( PrimaryKeyJoinColumns.class );
    assertAnnotationPresent( JoinTable.class );
    assertAnnotationNotPresent( JoinColumns.class );
    assertAnnotationNotPresent( JoinColumn.class );
    JoinTable joinTableAnno = reader.getAnnotation( JoinTable.class );
    assertEquals( "", joinTableAnno.catalog() );
    assertEquals( "", joinTableAnno.name() );
    assertEquals( "", joinTableAnno.schema() );
    assertEquals( 0, joinTableAnno.joinColumns().length );
    assertEquals( 0, joinTableAnno.inverseJoinColumns().length );
    assertEquals( 0, joinTableAnno.uniqueConstraints().length );
  }
View Full Code Here

TOP

Related Classes of javax.persistence.JoinTable

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.