/** * This class should be treated as immutable. While we expose this array, * you should never make changes to it! * This is a design tradeoff vs. raw performance and memory usage. * * @return the column names */ public String[] getColumnNames() { return keyMetadata.getColumnNames(); }
@Override public DuplicateInsertPreventionStrategy getDuplicateInsertPreventionStrategy(EntityKeyMetadata entityKeyMetadata) { // Only for non-composite keys (= one column) Neo4j supports unique key constraints; Hence an explicit look-up // is required to detect duplicate insertions when using composite keys return entityKeyMetadata.getColumnNames().length == 1 ? DuplicateInsertPreventionStrategy.NATIVE : DuplicateInsertPreventionStrategy.LOOK_UP; }
private Object[] columnValues(Map<String, Object> node, EntityKeyMetadata metadata) { Object[] values = new Object[metadata.getColumnNames().length]; for ( int i = 0; i < metadata.getColumnNames().length; i++ ) { values[i] = node.get( metadata.getColumnNames()[i] ); } return values; }
private static Object[] keyValues(Node node, EntityKeyMetadata entityKeyMetadata) { Object[] values = new Object[entityKeyMetadata.getColumnNames().length]; for ( int i = 0; i < values.length; i++ ) { values[i] = node.get( entityKeyMetadata.getColumnNames()[i] ); } return values; } }
private Object[] columnValues(Node node, EntityKeyMetadata metadata) { Object[] values = new Object[metadata.getColumnNames().length]; for ( int i = 0; i < metadata.getColumnNames().length; i++ ) { values[i] = node.getProperties().get( metadata.getColumnNames()[i] ); } return values; }
private static Object[] keyValues(Node node, EntityKeyMetadata entityKeyMetadata) { Object[] values = new Object[entityKeyMetadata.getColumnNames().length]; for ( int i = 0; i < values.length; i++ ) { values[i] = node.getProperties().get( entityKeyMetadata.getColumnNames()[i] ); } return values; } }
private String initRemoveToOneAssociation(EntityKeyMetadata entityKeyMetadata, TupleTypeContext tupleTypeContext) { StringBuilder queryBuilder = new StringBuilder(); appendMatchOwnerEntityNode( queryBuilder, entityKeyMetadata ); queryBuilder.append( " -[r]-> (:" ); queryBuilder.append( NodeLabel.ENTITY ); queryBuilder.append( ") WHERE type(r) = {" ); queryBuilder.append( entityKeyMetadata.getColumnNames().length ); queryBuilder.append( "} DELETE r" ); return queryBuilder.toString(); }
@Override public void writeObject(ObjectOutput output, EntityKeyMetadata metadata) throws IOException { output.writeInt( VERSION ); output.writeUTF( metadata.getTable() ); output.writeObject( metadata.getColumnNames() ); }
@Override public void writeObject(ObjectOutput output, EntityKeyMetadata metadata) throws IOException { output.writeInt( VERSION ); output.writeUTF( metadata.getTable() ); output.writeObject( metadata.getColumnNames() ); }
protected static void appendEntityNode(String alias, EntityKeyMetadata entityKeyMetadata, StringBuilder queryBuilder, int offset, boolean addProperties) { queryBuilder.append( "(" ); queryBuilder.append( alias ); queryBuilder.append( ":" ); queryBuilder.append( ENTITY ); queryBuilder.append( ":" ); appendLabel( entityKeyMetadata, queryBuilder ); if ( addProperties ) { appendProperties( queryBuilder, entityKeyMetadata.getColumnNames(), offset ); } queryBuilder.append( ")" ); }
public static EntityKey fromData( EntityKeyMetadata entityKeyMetadata, GridType identifierGridType, final Serializable id, SharedSessionContractImplementor session) { Object[] values = LogicalPhysicalConverterHelper.getColumnsValuesFromObjectValue( id, identifierGridType, entityKeyMetadata.getColumnNames(), session ); return new EntityKey( entityKeyMetadata, values ); }
@Override public Object get(String column) { if ( associatedEntityKeyMetadata.containsKey( column ) ) { return readPropertyOnOtherNode( column ); } else if ( BaseNeo4jDialect.isPartOfRegularEmbedded( entityKeyMetadata.getColumnNames(), column ) ) { return readEmbeddedProperty( column ); } else { return readProperty( node, column ); } }
@Override public Object get(String column) { if ( associatedEntityKeyMetadata.containsKey( column ) ) { return readPropertyOnOtherNode( column ); } else if ( isPartOfRegularEmbedded( entityKeyMetadata.getColumnNames(), column ) ) { return readEmbeddedProperty( column ); } else { return readProperty( node, column ); } }
@Override public void insertTuple(EntityKeyMetadata entityKeyMetadata, Tuple tuple, TupleContext tupleContext) { Document objectWithId = insertDocument( entityKeyMetadata, tuple, tupleContext ); String idColumnName = entityKeyMetadata.getColumnNames()[0]; tuple.put( idColumnName, objectWithId.get( ID_FIELDNAME ) ); }
private void validateEntityCollectionNames(Iterable<EntityKeyMetadata> allEntityKeyMetadata) { for ( EntityKeyMetadata entityKeyMetadata : allEntityKeyMetadata ) { validateAsMongoDBCollectionName( entityKeyMetadata.getTable() ); for ( String column : entityKeyMetadata.getColumnNames() ) { validateAsMongoDBFieldName( column ); } } }
@Override public void insertTuple(EntityKeyMetadata entityKeyMetadata, Tuple tuple, TupleContext tupleContext) { Document objectWithId = insertDocument( entityKeyMetadata, tuple, tupleContext ); String idColumnName = entityKeyMetadata.getColumnNames()[0]; tuple.put( idColumnName, objectWithId.get( ID_FIELDNAME ) ); }
private void validateEntityCollectionNames(Iterable<EntityKeyMetadata> allEntityKeyMetadata) { for ( EntityKeyMetadata entityKeyMetadata : allEntityKeyMetadata ) { validateAsMongoDBCollectionName( entityKeyMetadata.getTable() ); for ( String column : entityKeyMetadata.getColumnNames() ) { validateAsMongoDBFieldName( column ); } } }
private void putTupleOperation(EntityKey entityKey, Tuple tuple, Node node, TupleOperation operation, TupleContext tupleContext, Set<String> processedAssociationRoles) { if ( tupleContext.getTupleTypeContext().isPartOfAssociation( operation.getColumn() ) ) { // the column represents a to-one association, map it as relationship putOneToOneAssociation( tuple, node, operation, tupleContext, processedAssociationRoles ); } else if ( isPartOfRegularEmbedded( entityKey.getMetadata().getColumnNames(), operation.getColumn() ) ) { getEntityQueries( entityKey.getMetadata(), tupleContext ).updateEmbeddedColumn( dataBase, entityKey.getColumnValues(), operation.getColumn(), operation.getValue() ); } else { putProperty( entityKey, node, operation ); } }
private TupleContext tupleContext(Session session) { return new GridDialectOperationContexts.TupleContextBuilder() .tupleTypeContext( new GridDialectOperationContexts.TupleTypeContextBuilder() .selectableColumns( METADATA.getColumnNames() ) .buildTupleTypeContext() ) .transactionContext( session ) .buildTupleContext(); }
private TupleContext tupleContext(Session session) { return new GridDialectOperationContexts.TupleContextBuilder() .tupleTypeContext( new GridDialectOperationContexts.TupleTypeContextBuilder() .selectableColumns( METADATA.getColumnNames() ) .buildTupleTypeContext() ) .transactionContext( session ) .buildTupleContext(); }