@ -173,19 +173,7 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
@Override
@Override
public < T > List < T > saveAll ( Iterable < T > instances ) {
public < T > List < T > saveAll ( Iterable < T > instances ) {
return doInBatch ( instances , ( first ) - > ( second - > changeCreatorSelectorForSave ( first ) . apply ( second ) ) ) ;
Assert . notNull ( instances , "Aggregate instances must not be null" ) ;
if ( ! instances . iterator ( ) . hasNext ( ) ) {
return Collections . emptyList ( ) ;
}
List < EntityAndChangeCreator < T > > entityAndChangeCreators = new ArrayList < > ( ) ;
for ( T instance : instances ) {
verifyIdProperty ( instance ) ;
entityAndChangeCreators . add ( new EntityAndChangeCreator < > ( instance , changeCreatorSelectorForSave ( instance ) ) ) ;
}
return performSaveAll ( entityAndChangeCreators ) ;
}
}
/ * *
/ * *
@ -206,21 +194,7 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
@Override
@Override
public < T > List < T > insertAll ( Iterable < T > instances ) {
public < T > List < T > insertAll ( Iterable < T > instances ) {
return doInBatch ( instances , ( __ ) - > ( entity - > createInsertChange ( prepareVersionForInsert ( entity ) ) ) ) ;
Assert . notNull ( instances , "Aggregate instances must not be null" ) ;
if ( ! instances . iterator ( ) . hasNext ( ) ) {
return Collections . emptyList ( ) ;
}
List < EntityAndChangeCreator < T > > entityAndChangeCreators = new ArrayList < > ( ) ;
for ( T instance : instances ) {
Function < T , RootAggregateChange < T > > changeCreator = entity - > createInsertChange ( prepareVersionForInsert ( entity ) ) ;
EntityAndChangeCreator < T > entityChange = new EntityAndChangeCreator < > ( instance , changeCreator ) ;
entityAndChangeCreators . add ( entityChange ) ;
}
return performSaveAll ( entityAndChangeCreators ) ;
}
}
/ * *
/ * *
@ -241,6 +215,10 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
@Override
@Override
public < T > List < T > updateAll ( Iterable < T > instances ) {
public < T > List < T > updateAll ( Iterable < T > instances ) {
return doInBatch ( instances , ( __ ) - > ( entity - > createUpdateChange ( prepareVersionForUpdate ( entity ) ) ) ) ;
}
private < T > List < T > doInBatch ( Iterable < T > instances , Function < T , Function < T , RootAggregateChange < T > > > changeCreatorFunction ) {
Assert . notNull ( instances , "Aggregate instances must not be null" ) ;
Assert . notNull ( instances , "Aggregate instances must not be null" ) ;
@ -250,10 +228,8 @@ public class JdbcAggregateTemplate implements JdbcAggregateOperations {
List < EntityAndChangeCreator < T > > entityAndChangeCreators = new ArrayList < > ( ) ;
List < EntityAndChangeCreator < T > > entityAndChangeCreators = new ArrayList < > ( ) ;
for ( T instance : instances ) {
for ( T instance : instances ) {
verifyIdProperty ( instance ) ;
Function < T , RootAggregateChange < T > > changeCreator = entity - > createUpdateChange ( prepareVersionForUpdate ( entity ) ) ;
entityAndChangeCreators . add ( new EntityAndChangeCreator < T > ( instance , changeCreatorFunction . apply ( instance ) ) ) ;
EntityAndChangeCreator < T > entityChange = new EntityAndChangeCreator < > ( instance , changeCreator ) ;
entityAndChangeCreators . add ( entityChange ) ;
}
}
return performSaveAll ( entityAndChangeCreators ) ;
return performSaveAll ( entityAndChangeCreators ) ;
}
}