Examples of JpaJoinColumn


Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

    class JpaJoinColumnVisitor extends BaseTreeVisitor {

        @Override
        public boolean onStartNode(ProjectPath path) {

            JpaJoinColumn jpaJoin = (JpaJoinColumn) path.getObject();
            JpaRelationship jpaRelationship = (JpaRelationship) path.getObjectParent();
            JpaEntity targetEntity = context.getEntityMap().entityForClass(
                    jpaRelationship.getTargetEntityName());
            JpaId jpaTargetId = targetEntity.getAttributes().getIdForColumnName(
                    jpaJoin.getReferencedColumnName());

            if (jpaTargetId == null) {
                throw new IllegalArgumentException("Null id "
                        + targetEntity.getName()
                        + "."
                        + jpaJoin.getReferencedColumnName());
            }

            DbRelationship dbRelationship = (DbRelationship) targetPath.getObject();

            // add FK
            DbAttribute src = new DbAttribute(jpaJoin.getName());

            // TODO: andrus, 5/2/2006 - infer this from Jpa relationship
            src.setMandatory(false);
            src.setMaxLength(jpaTargetId.getColumn().getLength());
            src.setType(jpaTargetId.getDefaultJdbcType());
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

    class JpaJoinColumnVisitor extends BaseTreeVisitor {

        @Override
        public boolean onStartNode(ProjectPath path) {

            JpaJoinColumn jpaJoin = (JpaJoinColumn) path.getObject();
            JpaRelationship jpaRelationship = (JpaRelationship) path.getObjectParent();
            JpaEntity targetEntity = context.getEntityMap().entityForClass(
                    jpaRelationship.getTargetEntityName());
            JpaId jpaTargetId = targetEntity.getAttributes().getIdForColumnName(
                    jpaJoin.getReferencedColumnName());

            if (jpaTargetId == null) {
                throw new IllegalArgumentException("Null id "
                        + targetEntity.getName()
                        + "."
                        + jpaJoin.getReferencedColumnName());
            }

            DbRelationship dbRelationship = (DbRelationship) targetPath.getObject();

            // add FK
            DbAttribute src = new DbAttribute(jpaJoin.getName());

            // TODO: andrus, 5/2/2006 - infer this from Jpa relationship
            src.setMandatory(false);
            src.setMaxLength(jpaTargetId.getColumn().getLength());
            src.setType(jpaTargetId.getDefaultJdbcType());
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

    final class JoinColumnVisitor extends BaseTreeVisitor {

        @Override
        public boolean onStartNode(ProjectPath path) {
            JpaRelationship relationship = (JpaRelationship) path.getObjectParent();
            JpaJoinColumn column = (JpaJoinColumn) path.getObject();

            if (column.getTable() == null) {
                JpaEntity entity = path.firstInstanceOf(JpaEntity.class);
                column.setTable(entity.getTable().getName());
            }

            // JPA Spec, 2.1.8.2 (same for all relationship owners):
            // The following mapping defaults apply: [...]
            // Table A contains a foreign key to table B. The foreign key column
            // name is formed as the concatenation of the following: the name of
            // the relationship property or field of entityA; "_" ; the name of
            // the primary key column in table B. The foreign key column has the
            // same type as the primary key of table B.

            JpaEntityMap map = path.firstInstanceOf(JpaEntityMap.class);
            JpaEntity target = map.entityForClass(relationship.getTargetEntityName());

            if (target == null) {
                context.recordConflict(new SimpleValidationFailure(
                        relationship,
                        "Invalid relationship target "
                                + relationship.getTargetEntityName()));
            }
            else if (target.getAttributes() == null
                    || target.getAttributes().getIds().isEmpty()) {
                context.recordConflict(new SimpleValidationFailure(
                        target,
                        "Relationship target has no PK defined: "
                                + relationship.getTargetEntityName()));
            }
            else if (target.getAttributes().getIds().size() > 1) {
                // TODO: andrus, 4/30/2006 implement this; note that instead of
                // checking for "attribute.getJoinColumns().isEmpty()" above,
                // we'll have to match individual columns
                context.recordConflict(new SimpleValidationFailure(
                        relationship,
                        "Defaults for compound FK are not implemented."));
            }
            else {
                JpaId id = target.getAttributes().getIds().iterator().next();

                String pkName = id.getColumn() != null ? id.getColumn().getName() : id
                        .getName();
                column.setName(relationship.getName() + '_' + pkName);
                column.setReferencedColumnName(id.getColumn() != null ? id
                        .getColumn()
                        .getName() : id.getName());
            }

            return true;
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

            }

            JpaManyToOne manyToOne = (JpaManyToOne) path.getObject();
            Collection<JpaJoinColumn> joinColumns = manyToOne.getJoinColumns();
            if (joinColumns.isEmpty()) {
                joinColumns.add(new JpaJoinColumn(AnnotationPrototypes.getJoinColumn()));
            }

            return true;
        }
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

            JpaOneToOne oneToOne = (JpaOneToOne) path.getObject();
            Collection<JpaJoinColumn> joinColumns = oneToOne.getJoinColumns();
            String mappedBy = oneToOne.getMappedBy();
            if (joinColumns.isEmpty() && mappedBy == null) {
                joinColumns.add(new JpaJoinColumn(AnnotationPrototypes.getJoinColumn()));
            }

            return true;
        }
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

        void onAttribute(
                JpaAttribute attribute,
                AnnotatedElement element,
                AnnotationProcessorStack context) {

            JpaJoinColumn joinColumn = new JpaJoinColumn(element
                    .getAnnotation(JoinColumn.class));

            if (attribute instanceof JpaOneToMany) {
                ((JpaOneToMany) attribute).getJoinColumns().add(joinColumn);
            }
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

            JoinColumn[] annotations = element.getAnnotation(JoinColumns.class).value();
            Collection<JpaJoinColumn> joinColumns = new ArrayList<JpaJoinColumn>(
                    annotations.length);
            for (int i = 0; i < annotations.length; i++) {
                joinColumns.add(new JpaJoinColumn(annotations[i]));
            }

            if (attribute instanceof JpaOneToMany) {
                ((JpaOneToMany) attribute).getJoinColumns().addAll(joinColumns);
            }
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

    final class JoinColumnVisitor extends BaseTreeVisitor {

        @Override
        public boolean onStartNode(ProjectPath path) {
            JpaRelationship relationship = (JpaRelationship) path.getObjectParent();
            JpaJoinColumn column = (JpaJoinColumn) path.getObject();

            if (column.getTable() == null) {
                JpaEntity entity = path.firstInstanceOf(JpaEntity.class);
                column.setTable(entity.getTable().getName());
            }

            // JPA Spec, 2.1.8.2 (same for all relationship owners):
            // The following mapping defaults apply: [...]
            // Table A contains a foreign key to table B. The foreign key column
            // name is formed as the concatenation of the following: the name of
            // the relationship property or field of entityA; "_" ; the name of
            // the primary key column in table B. The foreign key column has the
            // same type as the primary key of table B.

            JpaEntityMap map = path.firstInstanceOf(JpaEntityMap.class);
            JpaEntity target = map.entityForClass(relationship.getTargetEntityName());

            if (target == null) {
                context.recordConflict(new SimpleValidationFailure(
                        relationship,
                        "Invalid relationship target "
                                + relationship.getTargetEntityName()));
            }
            else if (target.getAttributes() == null
                    || target.getAttributes().getIds().isEmpty()) {
                context.recordConflict(new SimpleValidationFailure(
                        target,
                        "Relationship target has no PK defined: "
                                + relationship.getTargetEntityName()));
            }
            else if (target.getAttributes().getIds().size() > 1) {
                // TODO: andrus, 4/30/2006 implement this; note that instead of
                // checking for "attribute.getJoinColumns().isEmpty()" above,
                // we'll have to match individual columns
                context.recordConflict(new SimpleValidationFailure(
                        relationship,
                        "Defaults for compound FK are not implemented."));
            }
            else {
                JpaId id = target.getAttributes().getIds().iterator().next();

                String pkName = id.getColumn() != null ? id.getColumn().getName() : id
                        .getName();
                column.setName(relationship.getName() + '_' + pkName);
                column.setReferencedColumnName(id.getColumn() != null ? id
                        .getColumn()
                        .getName() : id.getName());
            }

            return true;
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

            }

            JpaManyToOne manyToOne = (JpaManyToOne) path.getObject();
            Collection<JpaJoinColumn> joinColumns = manyToOne.getJoinColumns();
            if (joinColumns.isEmpty()) {
                joinColumns.add(new JpaJoinColumn(AnnotationPrototypes.getJoinColumn()));
            }

            return true;
        }
View Full Code Here

Examples of org.apache.cayenne.jpa.map.JpaJoinColumn

            JpaOneToOne oneToOne = (JpaOneToOne) path.getObject();
            Collection<JpaJoinColumn> joinColumns = oneToOne.getJoinColumns();
            String mappedBy = oneToOne.getMappedBy();
            if (joinColumns.isEmpty() && mappedBy == null) {
                joinColumns.add(new JpaJoinColumn(AnnotationPrototypes.getJoinColumn()));
            }

            return true;
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.