ApplicationContext app = new↓
ClassPathXmlApplicationContext("dbbean.xml");
ApplicationContext app = new修正したら、Appを実行してみてください。先ほどと同じように、ダミーのデータが一覧表示されます。ここでは、まず目を引くのがクラス宣言の前にあるアノテーションでしょう。
AnnotationConfigApplicationContext(SampleEntityConfig.class);
@EnableJpaRepositories("com.tuyano.libro.db")これは、JpaRepositoryをONにするためのものです。このアノテーションを記述することで、指定されたパッケージ内を検索し、@Repositoryを付けたクラスをBeanとして登録します。()内には、検索するパッケージを指定しておきます。<jpa:repositories>に相当するものと考えておくとよいでしょう。@EnableTransactionManagementこちらは、TransactionManagementを使うためのものです。これを用意しておくことでTransactionManagerがONになります。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
package com.tuyano.libro.db;
import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
@Configuration
@EnableJpaRepositories("com.tuyano.libro.db")
@EnableTransactionManagement
class SampleEntityConfig {
@Bean
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.H2).build();
}
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setGenerateDdl(true);
LocalContainerEntityManagerFactoryBean factory = new
LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setPackagesToScan("com.tuyano.libro.db");
factory.setDataSource(dataSource());
factory.afterPropertiesSet();
return factory.getObject();
}
@Bean
protected JpaTransactionManager transactionManager
(EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}
| << 前へ | 次へ >> |