javax.persistence.AssociationOverride.joinColumns()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(13.3k)|赞(0)|评价(0)|浏览(79)

本文整理了Java中javax.persistence.AssociationOverride.joinColumns()方法的一些代码示例,展示了AssociationOverride.joinColumns()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AssociationOverride.joinColumns()方法的具体详情如下:
包路径:javax.persistence.AssociationOverride
类名称:AssociationOverride
方法名:joinColumns

AssociationOverride.joinColumns介绍

暂无

代码示例

代码示例来源:origin: hibernate/hibernate-orm

private static Map<String, JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element, String path) {
  Map<String, JoinColumn[]> columnOverride = new HashMap<String, JoinColumn[]>();
  if ( element != null ) {
    AssociationOverride[] overrides = buildAssociationOverrides( element, path );
    if ( overrides != null ) {
      for ( AssociationOverride depAttr : overrides ) {
        columnOverride.put(
            StringHelper.qualify( path, depAttr.name() ),
            depAttr.joinColumns()
        );
      }
    }
  }
  return columnOverride;
}

代码示例来源:origin: hibernate/hibernate-orm

private static Map<String, JoinTable> buildJoinTableOverride(XAnnotatedElement element, String path) {
  Map<String, JoinTable> tableOverride = new HashMap<String, JoinTable>();
  if ( element != null ) {
    AssociationOverride[] overrides = buildAssociationOverrides( element, path );
    if ( overrides != null ) {
      for ( AssociationOverride depAttr : overrides ) {
        if ( depAttr.joinColumns().length == 0 ) {
          tableOverride.put(
              StringHelper.qualify( path, depAttr.name() ),
              depAttr.joinTable()
          );
        }
      }
    }
  }
  return tableOverride;
}

代码示例来源:origin: hibernate/hibernate-orm

/**
 * When there's a single association override, we still wrap it with an
 * AssociationOverrides annotation.
 */
@Test
public void testSingleAssociationOverride() throws Exception {
  reader = getReader( Entity3.class, "field1", "element-collection.orm24.xml" );
  assertAnnotationPresent( ElementCollection.class );
  assertAnnotationNotPresent( AssociationOverride.class );
  assertAnnotationPresent( AssociationOverrides.class );
  AssociationOverrides overridesAnno = reader.getAnnotation( AssociationOverrides.class );
  AssociationOverride[] overrides = overridesAnno.value();
  assertEquals( 1, overrides.length );
  assertEquals( "association1", overrides[0].name() );
  assertEquals( 0, overrides[0].joinColumns().length );
  assertEquals( "", overrides[0].joinTable().name() );
}

代码示例来源:origin: Impetus/Kundera

/**
 * @param relationField
 * @param annotate
 * @return
 */
private Boolean validateOneToOne(Field relationField, Annotation annotate)
{
    boolean isJoinedByTable = relationField.isAnnotationPresent(JoinTable.class);
  if (relationField.isAnnotationPresent(AssociationOverride.class))
  {
    AssociationOverride annotation = relationField.getAnnotation(AssociationOverride.class);
    JoinColumn[] joinColumns = annotation.joinColumns();
    validateJoinColumns(joinColumns);
    JoinTable joinTable = annotation.joinTable();
    onJoinTable(joinTable);
  }
  else if (isJoinedByTable)
  {
    throw new UnsupportedOperationException("@JoinTable not supported for one to one association");
  }
  return true;
}

代码示例来源:origin: Impetus/Kundera

/**
 * @param relationField
 * @param annotate
 * @return
 */
private Boolean validateManyToOne(Field relationField, Annotation annotate)
{
  // taking field's type as foreign entity, ignoring "targetEntity"
  Class<?> targetEntity = relationField.getType();
  boolean isJoinedByTable = relationField.isAnnotationPresent(JoinTable.class);
   
  if (relationField.isAnnotationPresent(AssociationOverride.class))
  {
    AssociationOverride annotation = relationField.getAnnotation(AssociationOverride.class);
    JoinColumn[] joinColumns = annotation.joinColumns();
    
    //validate if more than one  join column is defined
    validateJoinColumns(joinColumns);
    JoinTable joinTable = annotation.joinTable();
    //validate if join table is null
    onJoinTable(joinTable);
  }
  // join table not valid for Many to one check
  else if (isJoinedByTable)
  { 
    throw new UnsupportedOperationException("@JoinTable not supported for many to one association");
  }
  return true;
}

代码示例来源:origin: Impetus/Kundera

@Override
public void addRelationIntoMetadata(Field relationField, EntityMetadata metadata)
{
  // taking field's type as foreign entity, ignoring "targetEntity"
  Class<?> targetEntity = relationField.getType();
  ManyToOne ann = relationField.getAnnotation(ManyToOne.class);
  Relation relation = new Relation(relationField, targetEntity, null, ann.fetch(), Arrays.asList(ann.cascade()),
      ann.optional(), null, // mappedBy is null
      Relation.ForeignKey.MANY_TO_ONE);
  boolean isJoinedByFK = relationField.isAnnotationPresent(JoinColumn.class);
  if (relationField.isAnnotationPresent(AssociationOverride.class))
  {
    AssociationOverride annotation = relationField.getAnnotation(AssociationOverride.class);
    JoinColumn[] joinColumns = annotation.joinColumns();
    relation.setJoinColumnName(joinColumns[0].name());
  }
  else if (isJoinedByFK)
  {
    JoinColumn joinColumnAnn = relationField.getAnnotation(JoinColumn.class);
    relation.setJoinColumnName(StringUtils.isBlank(joinColumnAnn.name()) ? relationField.getName()
        : joinColumnAnn.name());
  }
  else
  {
    relation.setJoinColumnName(relationField.getName());
  }
  relation.setBiDirectionalField(metadata.getEntityClazz());
  metadata.addRelation(relationField.getName(), relation);
}

代码示例来源:origin: org.hibernate/hibernate-annotations

private static Map<String, JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element, String path) {
  Map<String, JoinColumn[]> columnOverride = new HashMap<String, JoinColumn[]>();
  if ( element == null ) return columnOverride;
  AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
  AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
  AssociationOverride[] overrides;
  if ( singleOverride != null ) {
    overrides = new AssociationOverride[] { singleOverride };
  }
  else if ( multipleOverrides != null ) {
    overrides = multipleOverrides.value();
  }
  else {
    overrides = null;
  }
  //fill overridden columns
  if ( overrides != null ) {
    for (AssociationOverride depAttr : overrides) {
      columnOverride.put(
          StringHelper.qualify( path, depAttr.name() ),
          depAttr.joinColumns()
      );
    }
  }
  return columnOverride;
}

代码示例来源:origin: org.hibernate/hibernate-annotations

private static Map<String, JoinTable> buildJoinTableOverride(XAnnotatedElement element, String path) {
  Map<String, JoinTable> tableOverride = new HashMap<String, JoinTable>();
  if ( element == null ) return tableOverride;
  AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
  AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
  AssociationOverride[] overrides;
  if ( singleOverride != null ) {
    overrides = new AssociationOverride[] { singleOverride };
  }
  else if ( multipleOverrides != null ) {
    overrides = multipleOverrides.value();
  }
  else {
    overrides = null;
  }
  //fill overridden tables
  if ( overrides != null ) {
    for (AssociationOverride depAttr : overrides) {
      if ( depAttr.joinColumns().length == 0 ) {
        tableOverride.put(
            StringHelper.qualify( path, depAttr.name() ),
            depAttr.joinTable()
        );
      }
    }
  }
  return tableOverride;
}

代码示例来源:origin: Impetus/Kundera

JoinColumn[] joinColumns = annotation.joinColumns();
relation.setJoinColumnName(joinColumns[0].name());

代码示例来源:origin: hibernate/hibernate-orm

assertEquals( 0, overrides[0].joinColumns().length );
joinColumns = overrides[1].joinColumns();
assertEquals( 2, joinColumns.length );
assertEquals( "", joinColumns[0].name() );

代码示例来源:origin: com.haulmont.cuba/cuba-core

private void overrideAssociations(AssociationOverrides overrides, Map<String, FieldEntry> embeddedFields) {
    AssociationOverride[] overriddenAttributes = overrides.value();
    for (AssociationOverride overriddenAttribute : overriddenAttributes) {
      if (overriddenAttribute.joinColumns().length == 1) {
        embeddedFields.put(overriddenAttribute.name(), new FieldEntry(overriddenAttribute.name(), overriddenAttribute.joinColumns()[0].name()));
      }
    }
  }
}

代码示例来源:origin: org.hibernate.orm/hibernate-core

private static Map<String, JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element, String path) {
  Map<String, JoinColumn[]> columnOverride = new HashMap<String, JoinColumn[]>();
  if ( element != null ) {
    AssociationOverride[] overrides = buildAssociationOverrides( element, path );
    if ( overrides != null ) {
      for ( AssociationOverride depAttr : overrides ) {
        columnOverride.put(
            StringHelper.qualify( path, depAttr.name() ),
            depAttr.joinColumns()
        );
      }
    }
  }
  return columnOverride;
}

代码示例来源:origin: org.batoo.jpa/parser

/**
 * @param locator
 *            the locator
 * @param annotation
 *            the annotation
 * 
 * @since 2.0.0
 */
public AssociationOverrideMetadataImpl(AbstractLocator locator, AssociationOverride annotation) {
  super();
  this.locator = locator;
  this.name = annotation.name();
  if (annotation.joinColumns().length > 0) {
    for (final JoinColumn joinColumn : annotation.joinColumns()) {
      this.joinColumns.add(new JoinColumnMetadataImpl(this.locator, joinColumn));
    }
    this.joinTable = null;
  }
  else {
    this.joinTable = new JoinTableMetadaImpl(locator, annotation.joinTable());
  }
}

代码示例来源:origin: BatooOrg/BatooJPA

/**
 * @param locator
 *            the locator
 * @param annotation
 *            the annotation
 * 
 * @since 2.0.0
 */
public AssociationOverrideMetadataImpl(AbstractLocator locator, AssociationOverride annotation) {
  super();
  this.locator = locator;
  this.name = annotation.name();
  if (annotation.joinColumns().length > 0) {
    for (final JoinColumn joinColumn : annotation.joinColumns()) {
      this.joinColumns.add(new JoinColumnMetadataImpl(this.locator, joinColumn));
    }
    this.joinTable = null;
  }
  else {
    this.joinTable = new JoinTableMetadaImpl(locator, annotation.joinTable());
  }
}

代码示例来源:origin: org.batoo.jpa/batoo-jpa

/**
 * @param locator
 *            the locator
 * @param annotation
 *            the annotation
 * 
 * @since 2.0.0
 */
public AssociationOverrideMetadataImpl(AbstractLocator locator, AssociationOverride annotation) {
  super();
  this.locator = locator;
  this.name = annotation.name();
  if (annotation.joinColumns().length > 0) {
    for (final JoinColumn joinColumn : annotation.joinColumns()) {
      this.joinColumns.add(new JoinColumnMetadataImpl(this.locator, joinColumn));
    }
    this.joinTable = null;
  }
  else {
    this.joinTable = new JoinTableMetadaImpl(locator, annotation.joinTable());
  }
}

代码示例来源:origin: org.hibernate.orm/hibernate-core

private static Map<String, JoinTable> buildJoinTableOverride(XAnnotatedElement element, String path) {
  Map<String, JoinTable> tableOverride = new HashMap<String, JoinTable>();
  if ( element != null ) {
    AssociationOverride[] overrides = buildAssociationOverrides( element, path );
    if ( overrides != null ) {
      for ( AssociationOverride depAttr : overrides ) {
        if ( depAttr.joinColumns().length == 0 ) {
          tableOverride.put(
              StringHelper.qualify( path, depAttr.name() ),
              depAttr.joinTable()
          );
        }
      }
    }
  }
  return tableOverride;
}

代码示例来源:origin: org.hibernate/com.springsource.org.hibernate

private static Map<String, JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element, String path) {
  Map<String, JoinColumn[]> columnOverride = new HashMap<String, JoinColumn[]>();
  if ( element == null ) return columnOverride;
  AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
  AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
  AssociationOverride[] overrides;
  if ( singleOverride != null ) {
    overrides = new AssociationOverride[] { singleOverride };
  }
  else if ( multipleOverrides != null ) {
    overrides = multipleOverrides.value();
  }
  else {
    overrides = null;
  }
  //fill overridden columns
  if ( overrides != null ) {
    for (AssociationOverride depAttr : overrides) {
      columnOverride.put(
          StringHelper.qualify( path, depAttr.name() ),
          depAttr.joinColumns()
      );
    }
  }
  return columnOverride;
}

代码示例来源:origin: jboss.jboss-embeddable-ejb3/hibernate-all

private static Map<String, JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element, String path) {
  Map<String, JoinColumn[]> columnOverride = new HashMap<String, JoinColumn[]>();
  if ( element == null ) return columnOverride;
  AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
  AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
  AssociationOverride[] overrides;
  if ( singleOverride != null ) {
    overrides = new AssociationOverride[]{singleOverride};
  }
  else if ( multipleOverrides != null ) {
    overrides = multipleOverrides.value();
  }
  else {
    overrides = null;
  }
  //fill overriden columns
  if ( overrides != null ) {
    for ( AssociationOverride depAttr : overrides ) {
      columnOverride.put(
          StringHelper.qualify( path, depAttr.name() ),
          depAttr.joinColumns()
      );
    }
  }
  return columnOverride;
}

代码示例来源:origin: toplink.essentials/toplink-essentials

/**
 * INTERNAL: (Overriden in XMLClassAccessor)
 * Process an @AssociationOverrides for an Entity (or MappedSuperclass) 
 * that inherits from a MappedSuperclass.
 * 
 * It will also look for an @AssociationOverride.
 */
protected void processAssociationOverrides() {
  // Look for an @AssociationOverrides.
  AssociationOverrides associationOverrides = getAnnotation(AssociationOverrides.class);
  if (associationOverrides != null) {
    for (AssociationOverride associationOverride : associationOverrides.value()) {
      processAssociationOverride(associationOverride.name(), new MetadataJoinColumns(associationOverride.joinColumns()));
    }
  }
  
  // Look for an @AssociationOverride.
  AssociationOverride associationOverride = getAnnotation(AssociationOverride.class);
  if (associationOverride != null) {
    processAssociationOverride(associationOverride.name(), new MetadataJoinColumns(associationOverride.joinColumns()));
  }
}

代码示例来源:origin: org.apache.openjpa/com.springsource.org.apache.openjpa

/**
 * Parse @AssociationOverride(s).
 */
private void parseAssociationOverrides(ClassMapping cm,
  AssociationOverride... assocs) {
  FieldMapping sup;
  JoinColumn[] scols;
  int unique;
  List<Column> jcols;
  for (AssociationOverride assoc : assocs) {
    if (StringUtils.isEmpty(assoc.name()))
      throw new MetaDataException(_loc.get("no-override-name", cm));
    sup = (FieldMapping) cm.getDefinedSuperclassField(assoc.name());
    if (sup == null)
      sup = (FieldMapping) cm.addDefinedSuperclassField
        (assoc.name(), Object.class, Object.class);
    scols = assoc.joinColumns();
    if (scols == null || scols.length == 0)
      continue;
    jcols = new ArrayList<Column>(scols.length);
    unique = 0;
    for (JoinColumn scol : scols) {
      unique |= (scol.unique()) ? TRUE : FALSE;
      jcols.add(newColumn(scol));
    }
    setColumns(sup, sup.getValueInfo(), jcols, unique);
  }
}

相关文章