javax.persistence.AssociationOverride类的使用及代码示例

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

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

AssociationOverride介绍

暂无

代码示例

代码示例来源: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

@Entity(name = "PolymorphicPropertySub1")
@AssociationOverrides({
    @AssociationOverride(name = "base", joinColumns = @JoinColumn(name = "base_sub_1"))
})
public static class PolymorphicPropertySub1 extends PolymorphicPropertyMapBase<PolymorphicSub1, Embeddable1> {
  private static final long serialVersionUID = 1L;
  public PolymorphicPropertySub1() {
  }
}

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

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

代码示例来源: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: 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: hibernate/hibernate-orm

private void addAssociationOverrideIfNeeded(AssociationOverride annotation, List<AssociationOverride> overrides) {
  if ( annotation != null ) {
    String overrideName = annotation.name();
    boolean present = false;
    for ( AssociationOverride current : overrides ) {
      if ( current.name().equals( overrideName ) ) {
        present = true;
        break;
      }
    }
    if ( !present ) {
      overrides.add( annotation );
    }
  }
}

代码示例来源: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: 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: org.hibernate/hibernate-annotations

private void addAssociationOverrideIfNeeded(AssociationOverride annotation, List<AssociationOverride> overrides) {
  if ( annotation != null ) {
    String overrideName = annotation.name();
    boolean present = false;
    for (AssociationOverride current : overrides) {
      if ( current.name().equals( overrideName ) ) {
        present = true;
        break;
      }
    }
    if ( !present ) overrides.add( annotation );
  }
}

代码示例来源: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: 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: hibernate/hibernate-orm

@Entity(name = "PolymorphicPropertySub2")
@AssociationOverrides({
    @AssociationOverride(name = "base", joinColumns = @JoinColumn(name = "base_sub_2"))
})
public static class PolymorphicPropertySub2 extends PolymorphicPropertyMapBase<PolymorphicSub2, Embeddable2> {
  private static final long serialVersionUID = 1L;
  public PolymorphicPropertySub2() {
  }
}

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

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

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

private void addAssociationOverrideIfNeeded(AssociationOverride annotation, List<AssociationOverride> overrides) {
  if ( annotation != null ) {
    String overrideName = annotation.name();
    boolean present = false;
    for ( AssociationOverride current : overrides ) {
      if ( current.name().equals( overrideName ) ) {
        present = true;
        break;
      }
    }
    if ( !present ) {
      overrides.add( annotation );
    }
  }
}

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

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

代码示例来源: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: 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: hibernate/hibernate-orm

/**
 * @author Emmanuel Bernard
 */
@Entity
@AssociationOverrides({
@AssociationOverride(name = "id.channel", joinColumns = @JoinColumn(name = "chan_id", nullable = false)),
@AssociationOverride(name = "id.presenter", joinColumns = @JoinColumn(name = "presenter_name", nullable = false))})
public class TvMagazin {
  @EmbeddedId
  public TvMagazinPk id;
  @Temporal(TemporalType.TIME)
  @Column(name="`time`")
  Date time;
}

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

private void addAssociationOverrideIfNeeded(AssociationOverride annotation, List<AssociationOverride> overrides) {
  if ( annotation != null ) {
    String overrideName = annotation.name();
    boolean present = false;
    for ( AssociationOverride current : overrides ) {
      if ( current.name().equals( overrideName ) ) {
        present = true;
        break;
      }
    }
    if ( !present ) {
      overrides.add( annotation );
    }
  }
}

相关文章