2016-05-04 2 views
1

У меня есть интерфейс с репозиторием сырого:Может т autowired репозиторий CRUD

public interface LekarDao extends CrudRepository<Lekarfizo, Long> { 

    Lekarfizo findByBrojLicence(String brojLicence); 
    } 

И у меня есть сервис:

@Service 
@Transactional 
public class LekarDaoImpl { 

@Autowired 
private LekarDao lekarDao; 


public Lekarfizo nadjipoIdu(String jmbg){ 

    return lekarDao.findByBrojLicence(jmbg); 
} 

Мой XML:

<context:annotation-config /> 
<context:component-scan base-package="com.dao" /> 
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 
    <jpa:repositories base-package="com.dao"/> 
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> 
<property name="persistenceUnitName" value="ProjekatOrdPU" /> 
</bean> 

<bean id="transactionManager"class="org.springframework.orm.jpa.JpaTransactionManager"> 
<property name="entityManagerFactory" ref="entityManagerFactory" /> 
</bean> 
<tx:annotation-driven transaction-manager="transactionManager" /> 

У меня есть ошибка:

Вызвано: org.springframework.beans.factory. BeanCreationException: Не удалось создать поле autwire: private com.dao.LekarDao com.dao.LekarDaoImpl.lekarDao; Вложенное исключение - org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонента с именем 'lekarDao': вызов метода init не удался; вложенное исключение - java.lang.NoClassDefFoundError: org/springframework/data/repository/query/QueryByExampleExecutor

Я действительно не знаю, что я делаю неправильно. Я использую Spring 4.0.1, spring-data-jpa 1.10.1, spring-data-commons 1.10.0.

+0

Если вы используете Maven, разместите свой POM. –

+0

Javadoc для QueryByExampleExecutor отмечает, что этот интерфейс существует в Spring-data-commons от ** v1.12 **: см. Http://docs.spring.io/spring-data/commons/docs/current/api/index. HTML? орг/springframework/данных/хранилище/запрос/QueryByExampleExecutor.html. У вас возник конфликт библиотеки. Используете ли вы менеджера зависимостей? –

+0

Я не использую maven i just download jar, spring-commons-data 1.10.0 и весенние данные jpa 1.10.1 –

ответ

4

Javadoc для QueryByExampleExecutor отмечает, что этот интерфейс был добавлен в Spring-data-commons из v1.12, поэтому, похоже, что spring-data-jpa 1.10 имеет зависимость от Spring-data-commons 1.12, а не 1.10, поскольку вы в настоящее время есть.

http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/query/QueryByExampleExecutor.html

public interface QueryByExampleExecutor Interface to allow execution of Query by Example Example instances. Since: 1.12

Altough вы не используете Maven, вы можете подтвердить необходимые версии любых зависимостей, глядя в весенне-данных JPA файла 1,10 JAR. В файле META-INF/maven/org.springframework.data/spring-data-jpa/pom.xml.

Это имеет следующий набор свойств:

<springdata.commons>1.12.1.RELEASE</springdata.commons> 

Управление зависимостями вручную будет чрезвычайно трудно на что-либо, кроме самых простых проектов. Вы должны посмотреть на использование инструмента построения, например Maven или Gradle.

+0

Да, работа хорошо известна, Tnx! –