`
阅读更多

       项目中尝试使用spring-data作为快速开发工具,今天需要实现一个具体的Repository,然后就自定义了一个,结果报下面的错误。

       

Caused by: org.springframework.data.mapping.PropertyReferenceException: No property update found for type xxx.yyy.zzz.customer.model.Consumer
	at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:74)
	at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:326)
	at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:352)
	at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:352)
	at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:306)
	at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:270)
	at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:244)
	at org.springframework.data.repository.query.parser.Part.<init>(Part.java:73)
	at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:180)
	at org.springframework.data.repository.query.parser.PartTree$Predicate.buildTree(PartTree.java:260)
	at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:240)
	at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:68)
	at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:57)
	at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:90)
	at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:162)
	at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:68)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:280)
	at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:148)
	at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:125)
	at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:41)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
	... 33 more

     从错误来看是spring尝试着去解析这个类了,然后发生了错误,后来发现是命名规范不符合springdata的规范。

 

     springdata的规范如下,要遵从repository-custom-impl的规范,具体如下:

      

public interface ConsumerRepository extends JpaRepository<Consumer, Long>,ConsumerRepositoryCustom {
	List<Consumer> findByCusinessType(int customerType);
}

    我们需要额外实现的一个自定义的方法:

   

public interface ConsumerRepositoryCustom {
	void updateCustomerNumber(Long oldId, Long newId);
}

 

   我们自定义的实现类:

   

public  class ConsumerRepositoryImpl implements ConsumerRepositoryCustom{
	@PersistenceContext
	private EntityManager entityManager;
	
	@Override
	public void updateCustomerNumber(Long oldId,Long newId){
		Query query = entityManager.createQuery("fddffdfdfd");
		query.setParameter(1, newId); 
		query.setParameter(2, oldId);
		
		query.executeUpdate();
	}

}

       在这个地方,我们经常会将实现类写成ConsumerRepositoryCustomImpl, 这样的话就出错了,从命名来看,我们可以看出来,最后说明一下如果我们的Repository是ICustomDao, 那么我们的custom接口应该命名成ICustomDaoCustom,相应的实现类就应该为ICustomDaoImpl.

1
0
分享到:
评论
1 楼 jinnianshilongnian 2013-12-26  
之前遇到过一次这样的问题:
ARepository {
    A getA();
}

ARepositoryImpl{
    A getA() {

    }
}

忘了在Impl中加public,一直报类似于No property update found for type xxx.yyy.zzz.customer.model.Consumer。 排查了好久

相关推荐

    SpringBoot+ Swagger+Druid+SpringData-jpa

    总结来说,这个项目展示了如何将SpringBoot、Swagger、Druid和SpringData-jpa这四个技术组件整合,以实现一个高效的、有良好文档支持和数据库管理的Web服务应用。通过学习和实践这个项目,开发者可以深入理解这些...

    管理系统系列--仓库管理系统,SpringBoot+Spring Data JPA+......zip

    【标题】"管理系统系列--仓库管理系统,SpringBoot+Spring Data JPA+......zip" 提供了一个关于构建仓库管理系统的项目框架,它利用了Spring Boot和Spring Data JPA等技术。这个系统旨在自动化仓库操作,提高库存...

    spring-data-r2dbc-custom-dto-projection-bug-repro:在Spring R2DBC存储库中使用自定义转换类型作为DTO的bug的复制项目

    然而,在实际开发过程中,我们可能遇到一个特定的问题,即使用自定义转换类型作为DTO(Data Transfer Object)进行投影时可能会出现错误。这个名为"spring-data-r2dbc-custom-dto-projection-bug-repro"的项目就是...

    2018.02.Spring Boot 2.0 Cookbook 2nd

    书中会详细介绍如何创建一个基本的Spring Boot项目,包括利用Spring Initializr生成项目结构、配置构建工具(如Maven或Gradle)、以及如何编写启动类。此外,还会深入讲解Spring Boot的自动配置机制,如何通过编写...

    Spring+源码+深度解析

    源码分析可以揭示Repository接口的动态代理实现,以及如何自定义查询方法。 8. **Spring Security** Spring Security是强大的安全框架,源码解析可以帮助理解权限控制、认证和授权的实现。例如,...

    java-spring-fast-base_java_springboot_swagger_jpaspring_micromet

    3. **Data Access Layer**:使用JPA和一个合适的数据库(如MySQL、PostgreSQL)实现数据持久化,提供对数据库的操作接口。 4. **Entity Classes**:定义了模型对象,映射到数据库表,使用JPA注解进行配置。 5. **...

    spring-tool-suite-4-4.7.1.RELEASE-e4.16.0-win32.win32.x86_64.zip

    总之,Spring Tool Suite 4 是一个专门为Spring开发者量身打造的高效、功能齐全的开发环境,它将Eclipse的强大功能与Spring生态的深度集成相结合,极大地提高了Spring应用的开发效率和质量。无论你是Spring初学者...

    javaEE_Spring Boot

    安全方面,Spring Boot提供了Spring Security模块,它是一个全面的安全管理框架,可以实现用户认证、授权等功能,确保应用的安全性。 总而言之,JavaEE_Spring Boot框架以其自动化配置、内置服务器、对微服务的优秀...

    spring-framework-3.2.1.RELEASE 源码

    Spring Framework 是一个开源的Java...通过对源码的学习,你可以更深入地理解Spring的工作原理,这对于优化应用性能、排查问题,以及自定义扩展都非常有帮助。同时,了解Spring的架构设计,也能提升你的软件设计能力。

    spring-boot-demo

    日志系统在Spring Boot中也很重要,它默认集成了Logback或Log4j2,我们可以配置日志级别和输出格式,方便调试和问题排查。 此外,Spring Boot还提供了自动配置(Auto Configuration)特性,它会根据类路径下的jar包...

    spring-data-jpa-log4jdbc-demo:spring-data-jpa-log4jdbc-demo

    【标题】"spring-data-jpa-log4jdbc-demo"是一个基于Spring Data JPA和Log4jdbc的日志记录示例项目,它展示了如何在JPA操作中集成日志功能,以跟踪数据库查询和事务处理。 【描述】这个项目的核心是将Log4jdbc库与...

    java一个用来深入学习并实战 Spring Boot 的项目.zip

    这个名为“java一个用来深入学习并实战 Spring Boot 的项目”的压缩包文件,显然包含了一个完整的 Spring Boot 项目实例,非常适合学习和实践 Spring Boot 的核心概念和技术。 首先,让我们深入了解 Spring Boot 的...

    在IntelliJ IDEA中通过Spring Boot集成达梦数据库:从入门到精通

    在IntelliJ IDEA中通过Spring Boot集成达梦数据库是一个现代应用程序开发的重要步骤,尤其是在Java生态中。本教程将深入探讨如何实现这一目标,从基础设置到高级应用,帮助你从入门到精通。达梦数据库是一款由中国...

    spring

    在标签中,“源码”意味着讨论可能涉及到Spring的内部实现,对于开发者来说,理解源码有助于深入学习框架的工作原理,提高问题排查和定制能力。“工具”可能指的是Spring提供的各种开发工具,如Spring Tool Suite...

    Spring Boot 视频

    Spring Boot 是一个基于 Spring 框架的快速开发工具,它极大地简化了创建独立的、生产级别的基于 Spring 应用的步骤。本视频教程将深入探讨 Spring Boot 的核心特性,帮助开发者快速掌握这一强大框架。 ### 一、...

    itmuch-spring-cloud-book-master.zip

    Spring Cloud Sleuth是Spring Cloud的一个子项目,专注于服务追踪。它可以将追踪数据发送到Zipkin、HTrace或其他追踪后端,包括ElasticSearch。这样,我们可以在ElasticSearch中收集和分析微服务间的调用链路,帮助...

    Eclipse 結合Spring有聲教材

    10. **问题排查与优化**:分享在Eclipse和Spring开发过程中可能遇到的问题及解决方案,以及如何优化项目结构和性能。 这个有聲教材将采用讲解和实例相结合的方式,帮助学习者逐步掌握Eclipse和Spring的结合使用,...

    基于spring boot的体育场馆设施预约系统lw+ppt.rar

    Spring Data JPA作为Spring Boot的一部分,提供了对JPA(Java Persistence API)的封装,简化了数据库操作。通过定义Repository接口,可以轻松实现数据的增删改查,同时支持事务管理和数据验证,确保数据一致性。 ...

    7. JPA - Hibernate【从零开始学Spring Boot】

    Hibernate是JPA的一个实现,它扩展了JPA的功能,并提供了更强大的查询语言(HQL)和二级缓存等功能。在Spring Boot中,我们可以轻松集成Hibernate,只需在配置文件中设置相关属性,Spring Boot会自动配置并管理数据源...

    基于Spring的在线购物商城

    【基于Spring的在线购物商城】是一个使用Spring框架构建的电子商务平台。Spring是一个广泛使用的Java企业级应用开发框架,以其依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming)为...

Global site tag (gtag.js) - Google Analytics