【发布时间】:2019-09-18 08:03:33
【问题描述】:
我在 Spring Boot 项目中使用 Spring Data Repositories 和自定义 Repositories,但我想为海关添加 Generic Repository。
这是GenericCustomRepositoy:
public interface GenericCustomRepositoy<T, ID> {
List<T> findByFields(Class<T> clazz, List<Pair<String, Object>> fieldValue, List<Pair<String, Boolean>> orderBy);
}
@Repository
public class GenericCustomRepositoyImpl<T, ID> implements GenericCustomRepositoy<T, ID> {
@PersistenceContext
protected EntityManager em;
public List<T> findByFields(Class<T> clazz, List<Pair<String, Object>> fieldValues, List<Pair<String, Boolean>> orderBy) {
final CriteriaBuilder cb = em.getCriteriaBuilder();
final CriteriaQuery<T> cq = cb.createQuery(clazz);
final Root<T> root = cq.from(clazz);
........................
return em.createQuery(cq).getResultList();
}
这是我的仓库:
@Repository
public interface AdresseLivraisonRepository extends JpaRepository<AddressEntity, Integer>, GenericCustomRepositoy<AddressEntity, Integer> {
}
当我不想运行应用程序时出现此异常:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'adresseLivraisonRepository': Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException: No property fields found for type AddressEntity!
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1628)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:208)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1138)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
我做错了什么!
我更改了我的代码并添加了一个扩展通用的自定义存储库,但我得到了相同的异常。
这是新的存储库:
@Repository
public interface AdresseLivraisonRepository extends JpaRepository<ForwardingAddressEntity, Integer>, AdresseLivraisonCustomRepository {
}
【问题讨论】:
标签: spring-boot spring-data-jpa