0

我是新來春數據JPA。我想配置與Spring數據JPA我的maven webapp項目2天,現在我卡住了,因爲我得到實體廠長惱人的錯誤我。我已經驗證我的配置,但仍然無法理解爲什麼我的LogicImpl無法自動裝配倉庫,造成內部bean例外。我認爲有一些缺失,但我無法弄清楚。 我想使用Spring的事務templete在我的代碼,以及它工作正常,如果不使用我的資料庫界面在我logicImpl 我附上我的配置和代碼文件 ApplicationConfiguration.java春天JPA BeanCreationException:無法解析參考豆「的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':自動裝配依賴注入失敗; 嵌套的例外是org.springframework.beans.factory.BeanCreationException: 未能進行自動裝配領域:私人
com.itob.persistence.repository.UserRepository com.itob.business.impl.DepartmentLogicImpl.userRepository;嵌套的例外是 org.springframework.beans.factory.BeanCreationException:錯誤名稱創建豆 'userRepository':無法創建內部bean '(內部bean)#803be8a' 型 [org.springframework.orm.jpa .SharedEntityManagerCreator],同時設置bean屬性'entityManager';嵌套的例外是 org.springframework.beans.factory.BeanCreationException: 錯誤創建名稱爲豆 '(內部bean)#803be8a':無法解析參考豆'的entityManagerFactory'同時設定 構造函數的參數;嵌套異常是 org.springframework.beans.factory.BeanCreationException:錯誤 創建名爲'entityManagerFactory'的bean在 中定義com.itob.configuration.ApplicationConfiguration:Bean實例化 通過工廠方法失敗;嵌套的例外是 org.springframework.beans。 BeanInstantiationException:無法 實例化 [javax.persistence.EntityManagerFactory]:出廠方法 '的entityManagerFactory' 拋出異常;嵌套異常是 javax.persistence。的PersistenceException [PersistenceUnit:默認] 無法建立的Hibernate SessionFactory的

回答

0

你需要的是增加 @EnableJpaRepositories(basePackages="com.zxg.springdata",entityManagerFactoryRef="factoryBean")

你必須映射您的entityManagerFactory

+0

謝謝你的答案,但它是依賴問題。 。 – NewCoder

相關問題