Java Code Examples for javax.persistence.JoinColumns

The following examples show how to use javax.persistence.JoinColumns. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: olingo-odata2   Source File: JPAEdmProperty.java    License: Apache License 2.0 6 votes vote down vote up
private void addForeignKey(final Attribute<?, ?> jpaAttribute) throws ODataJPAModelException,
    ODataJPARuntimeException {

  AnnotatedElement annotatedElement = (AnnotatedElement) jpaAttribute.getJavaMember();
  joinColumnNames = null;
  if (annotatedElement == null) {
    return;
  }
  JoinColumn joinColumn = annotatedElement.getAnnotation(JoinColumn.class);
  if (joinColumn == null) {
    JoinColumns joinColumns = annotatedElement.getAnnotation(JoinColumns.class);
    if (joinColumns != null) {
      for (JoinColumn jc : joinColumns.value()) {
        buildForeignKey(jc, jpaAttribute);
      }
    }
  } else {
    buildForeignKey(joinColumn, jpaAttribute);
  }
}
 
Example 2
private void buildJoinColumns(List<Annotation> annotationList, Element element) {
	JoinColumn[] joinColumns = getJoinColumns( element, false );
	if ( joinColumns.length > 0 ) {
		AnnotationDescriptor ad = new AnnotationDescriptor( JoinColumns.class );
		ad.setValue( "value", joinColumns );
		annotationList.add( AnnotationFactory.create( ad ) );
	}
}
 
Example 3
public XAnnotation<?> createJoinColumns(List<JoinColumn> cJoinColumns) {
	return transform(
			JoinColumns.class,
			javax.persistence.JoinColumn.class,
			cJoinColumns,
			new Transformer<JoinColumn, XAnnotation<javax.persistence.JoinColumn>>() {
				public XAnnotation<javax.persistence.JoinColumn> transform(
						JoinColumn input) {
					return createJoinColumn(input);
				}
			});
}
 
Example 4
Source Project: ankush   Source File: Node.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * @return the configuration
 */
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
@JoinColumns({
		@JoinColumn(name = "clusterId", referencedColumnName = "clusterId"),
		@JoinColumn(name = "host", referencedColumnName = "publicIp") })
public List<Event> getEvents() {
	return events;
}
 
Example 5
Source Project: ankush   Source File: Node.java    License: GNU Lesser General Public License v3.0 5 votes vote down vote up
/**
 * @return the configuration
 */
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
@JoinColumns({
		@JoinColumn(name = "clusterId", referencedColumnName = "clusterId"),
		@JoinColumn(name = "host", referencedColumnName = "publicIp") })
public List<Configuration> getConfiguration() {
	return configuration;
}
 
Example 6
Source Project: lams   Source File: AnnotationBinder.java    License: GNU General Public License v2.0 4 votes vote down vote up
private static int addProperty(
		PropertyContainer propertyContainer,
		XProperty property,
		List<PropertyData> inFlightPropertyDataList,
		MetadataBuildingContext context) {
	// see if inFlightPropertyDataList already contains a PropertyData for this name,
	// and if so, skip it..
	for ( PropertyData propertyData : inFlightPropertyDataList ) {
		if ( propertyData.getPropertyName().equals( property.getName() ) ) {
			// EARLY EXIT!!!
			return 0;
		}
	}

	final XClass declaringClass = propertyContainer.getDeclaringClass();
	final XClass entity = propertyContainer.getEntityAtStake();
	int idPropertyCounter = 0;
	PropertyData propertyAnnotatedElement = new PropertyInferredData(
			declaringClass,
			property,
			propertyContainer.getClassLevelAccessType().getType(),
			context.getBootstrapContext().getReflectionManager()
	);

	/*
	 * put element annotated by @Id in front
	 * since it has to be parsed before any association by Hibernate
	 */
	final XAnnotatedElement element = propertyAnnotatedElement.getProperty();
	if ( element.isAnnotationPresent( Id.class ) || element.isAnnotationPresent( EmbeddedId.class ) ) {
		inFlightPropertyDataList.add( 0, propertyAnnotatedElement );
		/**
		 * The property must be put in hibernate.properties as it's a system wide property. Fixable?
		 * TODO support true/false/default on the property instead of present / not present
		 * TODO is @Column mandatory?
		 * TODO add method support
		 */
		if ( context.getBuildingOptions().isSpecjProprietarySyntaxEnabled() ) {
			if ( element.isAnnotationPresent( Id.class ) && element.isAnnotationPresent( Column.class ) ) {
				String columnName = element.getAnnotation( Column.class ).name();
				for ( XProperty prop : declaringClass.getDeclaredProperties( AccessType.FIELD.getType() ) ) {
					if ( !prop.isAnnotationPresent( MapsId.class ) ) {
						/**
						 * The detection of a configured individual JoinColumn differs between Annotation
						 * and XML configuration processing.
						 */
						boolean isRequiredAnnotationPresent = false;
						JoinColumns groupAnnotation = prop.getAnnotation( JoinColumns.class );
						if ( (prop.isAnnotationPresent( JoinColumn.class )
								&& prop.getAnnotation( JoinColumn.class ).name().equals( columnName )) ) {
							isRequiredAnnotationPresent = true;
						}
						else if ( prop.isAnnotationPresent( JoinColumns.class ) ) {
							for ( JoinColumn columnAnnotation : groupAnnotation.value() ) {
								if ( columnName.equals( columnAnnotation.name() ) ) {
									isRequiredAnnotationPresent = true;
									break;
								}
							}
						}
						if ( isRequiredAnnotationPresent ) {
							//create a PropertyData fpr the specJ property holding the mapping
							PropertyData specJPropertyData = new PropertyInferredData(
									declaringClass,
									//same dec
									prop,
									// the actual @XToOne property
									propertyContainer.getClassLevelAccessType().getType(),
									//TODO we should get the right accessor but the same as id would do
									context.getBootstrapContext().getReflectionManager()
							);
							context.getMetadataCollector().addPropertyAnnotatedWithMapsIdSpecj(
									entity,
									specJPropertyData,
									element.toString()
							);
						}
					}
				}
			}
		}

		if ( element.isAnnotationPresent( ManyToOne.class ) || element.isAnnotationPresent( OneToOne.class ) ) {
			context.getMetadataCollector().addToOneAndIdProperty( entity, propertyAnnotatedElement );
		}
		idPropertyCounter++;
	}
	else {
		inFlightPropertyDataList.add( propertyAnnotatedElement );
	}
	if ( element.isAnnotationPresent( MapsId.class ) ) {
		context.getMetadataCollector().addPropertyAnnotatedWithMapsId( entity, propertyAnnotatedElement );
	}

	return idPropertyCounter;
}
 
Example 7
Source Project: olingo-odata2   Source File: JPAJavaMemberMock.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public Class<? extends Annotation> annotationType() {
  return JoinColumns.class;
}
 
Example 8
Source Project: ankush   Source File: Node.java    License: GNU Lesser General Public License v3.0 4 votes vote down vote up
/**
 * @return the configuration
 */
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
@JoinColumns({ @JoinColumn(name = "node", referencedColumnName = "publicIp") })
public List<Service> getServices() {
	return services;
}
 
Example 9
private void extractJoinColumns() {
  /*
   * Check against Static Buffer whether the join column was already
   * extracted.
   */
  if (!jpaAttribute.equals(bufferedJPAAttribute)) {
    bufferedJPAAttribute = jpaAttribute;
    bufferedJoinColumns.clear();
  } else if (bufferedJoinColumns.isEmpty()) {
    roleExists = false;
    return;
  } else {
    roleExists = true;
    return;
  }

  AnnotatedElement annotatedElement = (AnnotatedElement) jpaAttribute
      .getJavaMember();

  if (annotatedElement == null) {
    return;
  }

  JoinColumn joinColumn = annotatedElement
      .getAnnotation(JoinColumn.class);
  if (joinColumn == null) {
    JoinColumns joinColumns = annotatedElement
        .getAnnotation(JoinColumns.class);

    if (joinColumns != null) {
      JoinColumn[] joinColumnArray = joinColumns.value();

      for (JoinColumn element : joinColumnArray) {
        bufferedJoinColumns.add(element);
      }
    } else {
      return;
    }
  } else {
    bufferedJoinColumns.add(joinColumn);
  }
  roleExists = true;
}
 
Example 10
Source Project: cloud-odata-java   Source File: JPAJavaMemberMock.java    License: Apache License 2.0 4 votes vote down vote up
@Override
public Class<? extends Annotation> annotationType() {
  return JoinColumns.class;
}