if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn)) targetTableInfo.addColumnInfo(columnInfoOfJoinColumn); if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn)) targetTableInfo.addColumnInfo(columnInfoOfJoinColumn);
/** * Add tableGenerator to table info. * * @param appMetadata * @param persistenceUnit * @param tableInfos * @param entityMetadata * @param isCompositeId */ private void addTableGenerator(ApplicationMetadata appMetadata, String persistenceUnit, List<TableInfo> tableInfos, EntityMetadata entityMetadata) { Metamodel metamodel = appMetadata.getMetamodel(persistenceUnit); IdDiscriptor keyValue = ((MetamodelImpl) metamodel).getKeyValue(entityMetadata.getEntityClazz().getName()); if (keyValue != null && keyValue.getTableDiscriptor() != null) { TableInfo tableGeneratorDiscriptor = new TableInfo(keyValue.getTableDiscriptor().getTable(), "CounterColumnType", String.class, keyValue.getTableDiscriptor().getPkColumnName()); if (!tableInfos.contains(tableGeneratorDiscriptor)) { tableGeneratorDiscriptor.addColumnInfo(getJoinColumn(tableGeneratorDiscriptor, keyValue.getTableDiscriptor().getValueColumnName(), Long.class)); tableInfos.add(tableGeneratorDiscriptor); } } }
/** * Add {@link DiscriminatorColumn} for schema generation. * * @param tableInfo * table info. * @param entityType * entity type. */ private void onInheritedProperty(TableInfo tableInfo, EntityType entityType) { String discrColumn = ((AbstractManagedType) entityType).getDiscriminatorColumn(); if (discrColumn != null) { ColumnInfo columnInfo = new ColumnInfo(); columnInfo.setColumnName(discrColumn); columnInfo.setType(String.class); columnInfo.setIndexable(true); IndexInfo idxInfo = new IndexInfo(discrColumn); tableInfo.addColumnInfo(columnInfo); tableInfo.addToIndexedColumnList(idxInfo); } }
tableInfo.addColumnInfo(getJoinColumn(tableInfo, relation.getJoinColumnName(kunderaMetadata), entityMetadata.getIdAttribute().getJavaType())); tableInfo.addColumnInfo(getJoinColumn(tableInfo, relation.getJoinColumnName(kunderaMetadata), targetEntityMetadata.getIdAttribute().getJavaType())); if (!tableInfos.isEmpty() && !tableInfos.contains(joinTableInfo) || tableInfos.isEmpty()) joinTableInfo.addColumnInfo(getJoinColumn(joinTableInfo, joinColumnName, entityMetadata.getIdAttribute().getJavaType())); joinTableInfo.addColumnInfo(getJoinColumn(joinTableInfo, inverseJoinColumnName, targetEntityMetadata.getIdAttribute().getJavaType()));
tableInfo.addColumnInfo(columnInfo); tableInfo.addToIndexedColumnList(indexInfo); Assert.assertNotNull(tableInfo.getColumnMetadatas());
if (!tableInfo.getColumnMetadatas().contains(columnInfo)) tableInfo.addColumnInfo(columnInfo);