Spring JPA Repositories @PostConstruct
Я новичок в Spring (4.2.5) и JPA и столкнулся с проблемой, связанной с @PostConstruct . В моем проекте я написал репозитории и вставляю в них данные, используя @PostConstruct и метод init.
@PostConstruct
public void init(){
Role roleUser = new Role();
roleUser.setName("ROLE_USER");
roleRepository.save(roleUser);
Role roleAdmin = new Role();
roleAdmin.setName("ROLE_ADMIN");
roleRepository.save(roleAdmin);
}
Я инициализирую все репозитории, вызывая applicationContext.xml
<context:component-scan base-package="com.shiva.controller">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<context:annotation-config/>
<jpa:repositories base-package="com.shiva.repository" entity-manager-factory-ref="emf" />
Но в журналах создаются таблицы, но проблема в том, что оператор вставки не вызывается, и я могу сомневаться, что этот метод инициализации не вызывается.
Это журналы для создания таблицы, но я не получаю инструкции вставки, которые я вызвал из applicationContext.xml:
Hibernate: drop table if exists Blog
Hibernate: drop table if exists Item
Hibernate: drop table if exists Role
Hibernate: drop table if exists Role_User
Hibernate: drop table if exists User
Hibernate: drop table if exists User_Role
Hibernate: create table Blog (id integer not null auto_increment, name varchar(255), url varchar(255), user_id integer, primary key (id))
Hibernate: create table Item (id integer not null auto_increment, description varchar(255), link varchar(255), published_date datetime, title varchar(255), blog_id integer, primary key (id))
Hibernate: create table Role (id integer not null auto_increment, name varchar(255), primary key (id))
Hibernate: create table Role_User (Role_id integer not null, users_id integer not null)
Hibernate: create table User (id integer not null auto_increment, email varchar(255), name varchar(255), password varchar(255), primary key (id))
Hibernate: create table User_Role (User_id integer not null, roles_id integer not null)
Как я могу посмотреть на эту проблему?
2 ответа
Спасибо всем за ваш ответ.... проблема была в моем файле applicationServlet.xml... Я изменил код для сканирования jpaRepositories, как это..
<jpa:repositories base-package="com.shiva.repository" entity-manager-factory-ref="emf" transaction-manager-ref="txManager" />
Я дал ссылку на сущность менеджер-фабрика и транзакция-менеджер, и она отлично работает для меня:)
Включить обработку @PostConstruct с помощью:
<context:annotation-config/>
Или же
<context:component-scan/>
Вы можете найти здесь аналогичный пост: