javax.persistence.JoinColumns Java Examples

The following examples show how to use javax.persistence.JoinColumns. 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 File: JPAEdmProperty.java    From olingo-odata2 with 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
Source File: JPAOverriddenAnnotationReader.java    From lams with GNU General Public License v2.0 5 votes vote down vote up
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
Source File: CreateXAnnotations.java    From hyperjaxb3 with BSD 2-Clause "Simplified" License 5 votes vote down vote up
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 File: Node.java    From ankush with 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 File: Node.java    From ankush with 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 File: AnnotationBinder.java    From lams with 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 File: JPAJavaMemberMock.java    From olingo-odata2 with Apache License 2.0 4 votes vote down vote up
@Override
public Class<? extends Annotation> annotationType() {
  return JoinColumns.class;
}
 
Example #8
Source File: Node.java    From ankush with 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
Source File: JPAEdmReferentialConstraintRole.java    From cloud-odata-java with Apache License 2.0 4 votes vote down vote up
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 File: JPAJavaMemberMock.java    From cloud-odata-java with Apache License 2.0 4 votes vote down vote up
@Override
public Class<? extends Annotation> annotationType() {
  return JoinColumns.class;
}