0

Я новичок в Spring Data JPA. Я пытаюсь настроить проект maven webapp с Spring Data JPA в течение 2 дней, и теперь я застрял, потому что я получаю раздражающие ошибки диспетчера фабрики объектов. Я проверил мою конфигурацию, но до сих пор не могу понять, почему мой LogicImpl не может автоустанавливать репозиторий и вызывать исключение из внутреннего бина. Я думаю, что чего-то не хватает, но я не могу понять это. И я хочу использовать весну транзакции Templete в моем коде, а также, который работает нормально, если не использовать мое хранилище интерфейса в моем logicImpl Я прилагаю мои настройки и файлы код ApplicationConfiguration.javaSpring jpa BeanCreationException: не удается разрешить ссылку на bean 'entityManagerFactory' при настройке аргумента конструктора;

@Configuration 
@EnableJpaRepositories("com.itob.persistence.repository") 
@EnableTransactionManagement 
public class ApplicationConfiguration { 
@Autowired 
private DataSource dataSource; 
@Bean 
public JdbcTemplate jdbcTemplate(){return new JdbcTemplate(dataSource);} 
@Bean 
public DataSource dataSource(){ 
    BasicDataSource dataSource =new BasicDataSource(); 
    dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver"); 
    dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe"); 
    dataSource.setUsername("hr");dataSource.setPassword("system");return dataSource; 
} 
@Bean 
public PlatformTransactionManager transactionManager() { 
    EntityManagerFactory factory = entityManagerFactory(); 
    return new JpaTransactionManager(factory); 
} 
@Bean 
public EntityManagerFactory entityManagerFactory() { 
    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); 
    vendorAdapter.setGenerateDdl(Boolean.TRUE); 
    vendorAdapter.setShowSql(Boolean.TRUE); 
    LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); 
    factory.setJpaVendorAdapter(vendorAdapter); 
    factory.setPackagesToScan("com.itob.persistence.model"); 
    factory.setDataSource(dataSource()); 
    factory.afterPropertiesSet(); 
    factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver()); 
    return factory.getObject(); 
} 

DepartmentLogicImpl.java

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Component; 
import org.springframework.transaction.annotation.Transactional; 

@Component 
public final class DepartmentLogicImpl implements IDepartmentLogic { 

@Autowired 
private DepartmentDao departmentDaoHbnImpl; 

@Autowired 
private IDepartmentConverter departmentConverterImpl; 

@Autowired 
private UserRepository userRepository; 

public DepartmentResponseBean getData() { 


    Department department = departmentConverterImpl.convertRequest("AMR"); 
    int insertedRows = departmentDaoHbnImpl.saveDepartment(department); 
    DepartmentResponseBean businessResponse = departmentConverterImpl.convertInsertedRecord(insertedRows); 
    return businessResponse; 
} 

@Transactional 
@Override 
public long totalUsers() { 
    return userRepository.count(); 
} 
} 

pom.xml

<!--Test--> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>3.8.1</version> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc6</artifactId> 
    <version>11.2.0.3</version> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-context</artifactId> 
    <version>4.2.0.RELEASE</version> 
    <exclusions> 
    <exclusion> 
     <!--Exclude Commons Logging in favor of SLF4j--> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>1.8.2.RELEASE</version> 
</dependency> 

<!--<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-dbcp2</artifactId> 
</dependency>--> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-core</artifactId> 
    <version>4.3.5.RELEASE</version> 
</dependency> 

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>4.2.0.RELEASE</version> 
</dependency> 

<!-- JPA Provider (Hibernate) --> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>4.3.8.Final</version> 
</dependency> 

<!-- https://mvnrepository.com/artifact/org.springframework.javaconfig/spring-javaconfig --> 
<dependency> 
    <groupId>org.springframework.javaconfig</groupId> 
    <artifactId>spring-javaconfig</artifactId> 
    <version>1.0.0.m3</version> 
</dependency> 

<!--AspectJ--> 
<dependency> 
    <groupId>org.aspectj</groupId> 
    <artifactId>aspectjrt</artifactId> 
    <version>1.8.6</version> 
</dependency> 

<!--Logging--> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>${org.self4j-version}</version> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>jcl-over-slf4j</artifactId> 
    <version>${org.self4j-version}</version> 
    <scope>runtime</scope> 
</dependency> 

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-log4j12</artifactId> 
    <version>${org.self4j-version}</version> 
    <scope>runtime</scope> 
</dependency> 

<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
    <exclusions> 
    <exclusion> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>javax.jms</groupId> 
     <artifactId>jmxtools</artifactId> 
    </exclusion> 
    <exclusion> 
     <groupId>com.sun.jmx</groupId> 
     <artifactId>jmxri</artifactId> 
    </exclusion> 
    </exclusions> 
    <scope>runtime</scope> 
</dependency> 

<[email protected]> 
<dependency> 
    <groupId>javax.inject</groupId> 
    <artifactId>javax.inject</artifactId> 
    <version>1</version> 
</dependency> 

<dependency> 
    <groupId>javax.persistence</groupId> 
    <artifactId>persistence-api</artifactId> 
    <version>1.0</version> 
</dependency> 

<!--Servlet--> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>javax.servlet.jsp</groupId> 
    <artifactId>jsp-api</artifactId> 
    <version>2.2</version> 
    <scope>provided</scope> 
</dependency> 

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.2</version> 
</dependency> 
<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-core-asl</artifactId> 
    <version>1.9.7</version> 
</dependency> 
<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.7</version> 
</dependency> 
<dependency> 
    <groupId>commons-dbcp</groupId> 
    <artifactId>commons-dbcp</artifactId> 
    <version>1.4</version> 
</dependency> 

Исключение

org.springframework.beans.factory.BeanCreationException: Ошибка создании компонента с именем 'departmentLogicImpl': Инъекции autowired зависимостей не удалось; вложенного исключения org.springframework.beans.factory.BeanCreationException: Не удалось autowire поля: частная
com.itob.persistence.repository.UserRepository com.itob.business.impl.DepartmentLogicImpl.userRepository; вложенное исключение org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «userRepository»: Невозможно создать внутренний компонент «(внутренний боб) # 803be8a» типа [org.springframework.orm.jpa .SharedEntityManagerCreator] при настройке bean-свойства 'entityManager'; вложенного исключения org.springframework.beans.factory.BeanCreationException: Ошибки создание боба с именем «(внутренний боб) # 803be8a»: Не удаюсь разрешить ссылку на боб «EntityManagerFactory» при установке аргумента конструктора; вложенное исключение: org.springframework.beans.factory.BeanCreationException: ошибка создание bean-компонента с именем 'entityManagerFactory', определенное в com.itob.configuration.ApplicationConfiguration: создание экземпляра Bean с помощью заводского метода; вложенное исключение - org.springframework.beans. BeanInstantiationException: не удалось выполнить экземпляр [javax.persistence.EntityManagerFactory]: фабричный метод «entityManagerFactory» выбрал исключение; вложенное исключение - javax.persistence.PersistenceException [PersistenceUnit: по умолчанию] Невозможно построить гибернации SessionFactory

ответ

0

то, что вам нужно, это добавить @EnableJpaRepositories(basePackages="com.zxg.springdata",entityManagerFactoryRef="factoryBean")

Вы должны сопоставить EntityManagerFactory

+0

спасибо за ваш ответ, но это была проблема зависимости. , – NewCoder