/** * Returns the table name of this key. * * @return the table name of this key */ public String getTable() { return metadata.getTable(); }
private static String getCacheName(AssociationKeyMetadata keyMetadata) { return ASSOCIATIONS_CACHE_PREFIX + keyMetadata.getTable(); } }
private static String getCacheName(AssociationKeyMetadata keyMetadata) { return ASSOCIATIONS_CACHE_PREFIX + keyMetadata.getTable(); } }
private static String getCacheName(AssociationKeyMetadata keyMetadata) { return ASSOCIATIONS_CACHE_PREFIX + keyMetadata.getTable(); }
@Override public boolean equals(Object o) { if ( this == o ) { return true; } if ( o == null || AssociationKey.class != o.getClass() ) { return false; } AssociationKey that = (AssociationKey) o; // order of comparison matters on performance: if ( !metadata.getTable().equals( that.metadata.getTable() ) ) { return false; } // Probably incorrect - comparing Object[] arrays with Arrays.equals if ( !Arrays.equals( columnValues, that.columnValues ) ) { return false; } if ( !Arrays.equals( metadata.getColumnNames(), that.metadata.getColumnNames() ) ) { return false; } return true; }
private String createAssociationQuery(AssociationKey key, boolean selectObjects) { StringBuilder sb = new StringBuilder(); if ( selectObjects ) { sb.append( "SELECT _KEY, _VAL FROM " ); } else { sb.append( "SELECT _KEY FROM " ); } sb.append( key.getMetadata().getTable() ).append( " WHERE " ); boolean first = true; for ( String columnName : key.getColumnNames() ) { if ( !first ) { sb.append( " AND " ); } else { first = false; } sb.append( StringHelper.realColumnName( columnName ) ).append( "=?" ); } return sb.toString(); }
/** * @param associationMetadata * @return true - is association through third table */ public static boolean isThirdTableAssociation(AssociationKeyMetadata associationMetadata) { return !associationMetadata.getTable().equals( associationMetadata.getAssociatedEntityKeyMetadata().getEntityKeyMetadata().getTable() ); } }
private void validateAssociationNames(Iterable<AssociationKeyMetadata> allAssociationKeyMetadata) { for ( AssociationKeyMetadata associationKeyMetadata : allAssociationKeyMetadata ) { validateAsMongoDBCollectionName( associationKeyMetadata.getTable() ); for ( String column : associationKeyMetadata.getRowKeyColumnNames() ) { validateAsMongoDBFieldName( column ); } } }
private CacheConfiguration createCacheConfiguration(AssociationKeyMetadata associationKeyMetadata, SchemaDefinitionContext context) { QueryEntity queryEntity = new QueryEntity(); queryEntity.setTableName( associationKeyMetadata.getTable() ); queryEntity.setValueType( StringHelper.stringAfterPoint( associationKeyMetadata.getTable() ) ); appendIndex( queryEntity, associationKeyMetadata, context ); CacheConfiguration result = new CacheConfiguration(); result.setName( StringHelper.stringBeforePoint( associationKeyMetadata.getTable() ) ); result.setQueryEntities( Arrays.asList( queryEntity ) ); return result; }
private void validateAssociationNames(Iterable<AssociationKeyMetadata> allAssociationKeyMetadata) { for ( AssociationKeyMetadata associationKeyMetadata : allAssociationKeyMetadata ) { validateAsMongoDBCollectionName( associationKeyMetadata.getTable() ); for ( String column : associationKeyMetadata.getRowKeyColumnNames() ) { validateAsMongoDBFieldName( column ); } } }
public IgniteCache<Object, BinaryObject> getAssociationCache(AssociationKeyMetadata keyMetadata) { return keyMetadata.getAssociationKind() == AssociationKind.EMBEDDED_COLLECTION ? getEntityCache( keyMetadata.getEntityKeyMetadata() ) : getEntityCache( keyMetadata.getTable() ); }
private boolean isAJoinColumn(AssociationKey key) { AssociationKeyMetadata metadata = key.getMetadata(); if ( AssociationKind.EMBEDDED_COLLECTION.equals( metadata.getAssociationKind() ) ) { return false; } AssociatedEntityKeyMetadata entityKeyMetadata = metadata.getAssociatedEntityKeyMetadata(); return metadata.getTable().equals( entityKeyMetadata.getEntityKeyMetadata().getTable() ); }
throw log.cacheNotFound( key.getMetadata().getTable() );
private void initializeAssociations(SchemaDefinitionContext context, IgniteDatastoreProvider igniteDatastoreProvider) { for ( AssociationKeyMetadata associationKeyMetadata : context.getAllAssociationKeyMetadata() ) { log.debugf( "initializeAssociations. associationKeyMetadata: %s", associationKeyMetadata ); if ( associationKeyMetadata.getAssociationKind() != AssociationKind.EMBEDDED_COLLECTION && IgniteAssociationSnapshot.isThirdTableAssociation( associationKeyMetadata ) ) { try { try { igniteDatastoreProvider.getAssociationCache( associationKeyMetadata ); } catch (HibernateException ex) { CacheConfiguration config = createCacheConfiguration( associationKeyMetadata, context ); if ( config != null ) { igniteDatastoreProvider.initializeCache( config ); } } } catch (Exception ex) { // just write error to log throw log.unableToInitializeCache( associationKeyMetadata.getTable(), ex ); } } } }
private CacheConfiguration<?,?> createEntityCacheConfiguration(EntityKeyMetadata entityKeyMetadata, SchemaDefinitionContext context) { CacheConfiguration<?,?> cacheConfiguration = new CacheConfiguration<>(); cacheConfiguration.setStoreKeepBinary( true ); cacheConfiguration.setSqlSchema( QueryUtils.DFLT_SCHEMA ); cacheConfiguration.setBackups( 1 ); cacheConfiguration.setName( StringHelper.stringBeforePoint( entityKeyMetadata.getTable() ) ); cacheConfiguration.setAtomicityMode( CacheAtomicityMode.TRANSACTIONAL ); QueryEntity queryEntity = new QueryEntity(); queryEntity.setTableName( entityKeyMetadata.getTable() ); queryEntity.setKeyType( getEntityIdClassName( entityKeyMetadata.getTable(), context ).getSimpleName() ); queryEntity.setValueType( StringHelper.stringAfterPoint( entityKeyMetadata.getTable() ) ); addTableInfo( queryEntity, context, entityKeyMetadata.getTable() ); for ( AssociationKeyMetadata associationKeyMetadata : context.getAllAssociationKeyMetadata() ) { if ( associationKeyMetadata.getAssociationKind() != AssociationKind.EMBEDDED_COLLECTION && associationKeyMetadata.getTable().equals( entityKeyMetadata.getTable() ) && !IgniteAssociationSnapshot.isThirdTableAssociation( associationKeyMetadata ) ) { appendIndex( queryEntity, associationKeyMetadata, context ); } } addUserIndexes( queryEntity, context, entityKeyMetadata.getTable() ); log.debugf( "queryEntity: %s", queryEntity ); cacheConfiguration.setQueryEntities( Arrays.asList( queryEntity ) ); return cacheConfiguration; }
putBoBuilder = provider.createBinaryObjectBuilder( provider.getEntityTypeName( key.getMetadata().getTable() ) );