public ClientMetadataBuilder(Map mapOfPuProperties, final KunderaMetadata kunderaMetadata, String... persistenceUnits) { this.persistenceUnits = persistenceUnits; this.mapExternalProperties = mapOfPuProperties; this.schemaConfiguration = new SchemaConfiguration(mapOfPuProperties, kunderaMetadata, persistenceUnits); }
public void buildClientFactoryMetadata(Map<String, ClientFactory> clientFactories, final KunderaMetadata kunderaMetadata) { for (String pu : persistenceUnits) { log.info("Loading client factory for persistence unit " + pu); Map<String, Object> puProperty = KunderaCoreUtils.getExternalProperties(pu, mapExternalProperties, persistenceUnits); ClientFactory clientFactory = ClientResolver.getClientFactory(pu, puProperty, kunderaMetadata); clientFactories.put(pu, clientFactory); } // configuring schema before loading client factories because during // initilazation schema nedds to be created. schemaConfiguration.configure(); // load all client factories. for (String pu : persistenceUnits) { Map<String, Object> puProperty = KunderaCoreUtils.getExternalProperties(pu, mapExternalProperties, persistenceUnits); clientFactories.get(pu).load(pu, puProperty); } } }
List<TableInfo> tableInfos = getSchemaInfo(persistenceUnit); Map<String, EntityMetadata> entityMetadataMap = getEntityMetadataCol(appMetadata, persistenceUnit); int idx = tableInfos.indexOf(tableInfo); tableInfo = tableInfos.get(idx); addColumnToTableInfo(entityMetadata, type, tableInfo); addColumnToTableInfo(entityMetadata, type, tableInfo); parseRelations(persistenceUnit, tableInfos, entityMetadata, tableInfo, relations); addTableGenerator(appMetadata, persistenceUnit, tableInfos, entityMetadata); || puMetadata.getProperty(PersistenceProperties.KUNDERA_DDL_AUTO_PREPARE) != null) SchemaManager schemaManager = getSchemaManagerForPu(persistenceUnit);
clazzToPuMap.put(clazz.getName(), persistenceUnits); appMetadata.setClazzToPuMap(clazzToPuMap); new SchemaConfiguration(em.getEntityManagerFactory().getProperties(), kunderaMetadata, getPersistenceUnit()) .configure();
tableInfo.addColumnInfo(getJoinColumn(tableInfo, relation.getJoinColumnName(kunderaMetadata), entityMetadata.getIdAttribute().getJavaType())); List<TableInfo> targetTableInfos = getSchemaInfo(pu); addJoinColumnToInfo(relation.getJoinColumnName(kunderaMetadata), targetTableInfo, targetTableInfos, entityMetadata); addJoinColumnToInfo(relation.getJoinColumnName(kunderaMetadata), targetTableInfo, tableInfos, entityMetadata); 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()));
EmbeddedColumnInfo embeddedColumnInfo = getEmbeddedColumn(tableInfo, embeddable, attr.getName(), attr.getJavaType(), ((Field) ((Field) attr.getJavaMember()))); ColumnInfo columnInfo = getColumn(tableInfo, attr, columns != null ? columns.get(((AbstractAttribute) attr).getJPAColumnName()) : null, null); if (!tableInfo.getColumnMetadatas().contains(columnInfo)) onInheritedProperty(tableInfo, entityType);
ColumnInfo columnInfoOfJoinColumn = getJoinColumn(targetTableInfo, joinColumn, m.getIdAttribute().getBindableJavaType()); if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn)) ColumnInfo columnInfoOfJoinColumn = getJoinColumn(targetTableInfo, joinColumn, m.getIdAttribute().getBindableJavaType()); if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn))
columns.add(getColumn(tableInfo, attr, indexedColumns.get(attr.getName()), orderByColumns));
columnInfo.setOrderBy(getOrderByColumn(orderByColumns, column));
/** * 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); } } }