Search in sources :

Example 1 with DefaultDataAccessStrategy

use of org.springframework.data.jdbc.core.DefaultDataAccessStrategy in project spring-data-jdbc by spring-projects.

the class MyBatisDataAccessStrategy method createCombinedAccessStrategy.

/**
 * Create a {@link DataAccessStrategy} that first checks for queries defined by MyBatis and if it doesn't find one
 * used a {@link DefaultDataAccessStrategy}
 *
 * @param context
 * @param sqlSession
 * @return
 */
public static DataAccessStrategy createCombinedAccessStrategy(JdbcMappingContext context, SqlSession sqlSession) {
    // the DefaultDataAccessStrategy needs a reference to the returned DataAccessStrategy. This creates a dependency
    // cycle. In order to create it, we need something that allows to defer closing the cycle until all the elements are
    // created. That is the purpose of the DelegatingAccessStrategy.
    DelegatingDataAccessStrategy delegatingDataAccessStrategy = new DelegatingDataAccessStrategy();
    MyBatisDataAccessStrategy myBatisDataAccessStrategy = new MyBatisDataAccessStrategy(sqlSession);
    CascadingDataAccessStrategy cascadingDataAccessStrategy = new CascadingDataAccessStrategy(asList(myBatisDataAccessStrategy, delegatingDataAccessStrategy));
    DefaultDataAccessStrategy defaultDataAccessStrategy = new // 
    DefaultDataAccessStrategy(// 
    new SqlGeneratorSource(context), // 
    context, cascadingDataAccessStrategy);
    delegatingDataAccessStrategy.setDelegate(defaultDataAccessStrategy);
    return cascadingDataAccessStrategy;
}
Also used : CascadingDataAccessStrategy(org.springframework.data.jdbc.core.CascadingDataAccessStrategy) DefaultDataAccessStrategy(org.springframework.data.jdbc.core.DefaultDataAccessStrategy) SqlGeneratorSource(org.springframework.data.jdbc.core.SqlGeneratorSource) DelegatingDataAccessStrategy(org.springframework.data.jdbc.core.DelegatingDataAccessStrategy)

Aggregations

CascadingDataAccessStrategy (org.springframework.data.jdbc.core.CascadingDataAccessStrategy)1 DefaultDataAccessStrategy (org.springframework.data.jdbc.core.DefaultDataAccessStrategy)1 DelegatingDataAccessStrategy (org.springframework.data.jdbc.core.DelegatingDataAccessStrategy)1 SqlGeneratorSource (org.springframework.data.jdbc.core.SqlGeneratorSource)1