package com.github.geequery.springdata.config; import javax.persistence.EntityManagerFactory; import javax.sql.DataSource; import jef.database.datasource.SimpleDataSource; import org.easyframe.enterprise.spring.CommonDao; import org.easyframe.enterprise.spring.CommonDaoImpl; import org.easyframe.enterprise.spring.JefJpaDialect; import org.easyframe.enterprise.spring.SessionFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.orm.jpa.JpaTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import com.github.geequery.springdata.repository.config.EnableGqRepositories; @Configuration @EnableTransactionManagement @EnableGqRepositories(basePackages = { "com.github.geequery.springdata.test.repo" }) public class PersistenceContext { @Bean() DataSource dataSource(Environment env) { SimpleDataSource ds = new SimpleDataSource("jdbc:derby:./db;create=true", null, null); return ds; } @Bean EntityManagerFactory entityManagerFactory(DataSource dataSource, Environment env) { SessionFactoryBean bean = new org.easyframe.enterprise.spring.SessionFactoryBean(); bean.setDataSource(dataSource); bean.setPackagesToScan(new String[]{"com.github.geequery.springdata.test.entity"}); bean.afterPropertiesSet(); return bean.getObject(); } @Bean JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setEntityManagerFactory(entityManagerFactory); transactionManager.setJpaDialect(new JefJpaDialect()); return transactionManager; } @Bean CommonDao commonDao(EntityManagerFactory entityManagerFactory){ return new CommonDaoImpl(entityManagerFactory); } }