
org.molgenis.data.mysql.MySqlConfiguration Maven / Gradle / Ivy
The newest version!
package org.molgenis.data.mysql;
import javax.sql.DataSource;
import org.molgenis.data.DataService;
import org.molgenis.data.ManageableRepositoryCollection;
import org.molgenis.data.elasticsearch.IndexedManageableRepositoryCollectionDecorator;
import org.molgenis.data.elasticsearch.SearchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;
import org.springframework.jdbc.core.JdbcTemplate;
@Configuration
public class MySqlConfiguration
{
@Autowired
private DataService dataService;
@Autowired
private MySqlEntityFactory mySqlEntityFactory;
@Autowired
private DataSource dataSource;
@Autowired
private SearchService searchService;
@Bean
public AsyncJdbcTemplate asyncJdbcTemplate()
{
return new AsyncJdbcTemplate(new JdbcTemplate(dataSource));
}
@Bean
@Scope("prototype")
public MysqlRepository mysqlRepository()
{
return new MysqlRepository(dataService, mySqlEntityFactory, dataSource, asyncJdbcTemplate());
}
@Bean(name =
{ "MysqlRepositoryCollection" })
public ManageableRepositoryCollection mysqlRepositoryCollection()
{
MysqlRepositoryCollection mysqlRepositoryCollection = new MysqlRepositoryCollection()
{
@Override
protected MysqlRepository createMysqlRepository()
{
return mysqlRepository();
}
@Override
public boolean hasRepository(String name)
{
throw new UnsupportedOperationException();
}
};
return new IndexedManageableRepositoryCollectionDecorator(searchService, mysqlRepositoryCollection);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy