HibernateRepository is not working with Spring Boot 2.7.1
See original GitHub issueHere is my setup:
- Spring Boot 2.7.1
- Hibernate 5.6.9.Final
- Hibernate Types:
hibernate-types-55:2.17.0 - Java 17
I’m enhancing my regular JPA repository according to the example in the article.
public interface ProductRepository extends JpaRepository<Product, Long>, HibernateRepository<Product> {
}
And here is what I got.
Stacktrace
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productRepository' defined in com.example.repository.ProductRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object); Reason: Failed to create query for method public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object)! No property 'update' found for type 'Product'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object)! No property 'update' found for type 'Product'
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
at app//org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
at app//org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
at app//org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:936)
at app//org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
at app//org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
at app//org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734)
at app//org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
at app//org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
at app//org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:132)
at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
at app//org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
... 86 more
Caused by: org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object); Reason: Failed to create query for method public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object)! No property 'update' found for type 'Product'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object)! No property 'update' found for type 'Product'
at app//org.springframework.data.repository.query.QueryCreationException.create(QueryCreationException.java:101)
at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:107)
at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(QueryExecutorMethodInterceptor.java:95)
at java.base@17/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base@17/java.util.Iterator.forEachRemaining(Iterator.java:133)
at java.base@17/java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1061)
at java.base@17/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1845)
at java.base@17/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base@17/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base@17/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base@17/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base@17/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:97)
at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:87)
at java.base@17/java.util.Optional.map(Optional.java:260)
at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:87)
at app//org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:365)
at app//org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:323)
at app//org.springframework.data.util.Lazy.getNullable(Lazy.java:231)
at app//org.springframework.data.util.Lazy.get(Lazy.java:115)
at app//org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:329)
at app//org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:144)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863)
at app//org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800)
... 101 more
Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract java.lang.Object com.vladmihalcea.spring.repository.HibernateRepository.update(java.lang.Object)! No property 'update' found for type 'Product'
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:96)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:119)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:259)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:93)
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:103)
... 123 more
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'update' found for type 'Product'
at app//org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:91)
at app//org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:438)
at app//org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:414)
at app//org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:367)
at java.base@17/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)
at app//org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:349)
at app//org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:332)
at app//org.springframework.data.repository.query.parser.Part.<init>(Part.java:81)
at app//org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:250)
at java.base@17/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base@17/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base@17/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base@17/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base@17/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base@17/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base@17/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base@17/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at app//org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:251)
at app//org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:384)
at java.base@17/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base@17/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base@17/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base@17/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base@17/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base@17/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base@17/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base@17/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at app//org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:385)
at app//org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:93)
at app//org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:89)
I think some additional configurations should be applied to use this repository successfully with Spring Boot. If there are ones, they should be described in README.
Issue Analytics
- State:
- Created a year ago
- Comments:5 (3 by maintainers)
Top Results From Across the Web
How to fix issues with spring boot and jpa - Stack Overflow
I ran into a problem while working on a project using spring boot and jpa. ... RepositoryConfigurationExtensionSupport : Spring Data JDBC ...
Read more >2. JPA Repositories - Spring
The JPA module of Spring Data contains a custom namespace that allows defining repository beans. It also contains certain features and element attributes ......
Read more >FindBy... with UUIDs does not work anymore with H2 #2590
This includes the update of Spring Data and h2. With this update I discovered that my repository method do not find the expected...
Read more >Introduction to Spring Data JPA - Baeldung
Exception translation is still enabled by the use of the @Repository annotation on the DAO. This annotation enables a Spring bean postprocessor to...
Read more >Spring Boot JPA + H2 example: Build a CRUD Rest APIs
You'll know: How to configure Spring Data, JPA, Hibernate to work with Database; How to define Data Models and Repository interfaces; Way to ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@viktorvoltaire But, without adding your application package, it would not have worked even without
HibernateRepository. That’s required anyway.But, I made it more explicit.
@vladmihalcea do you mind adding 👇 that one also needs to include its own application to the readme. It should be straight forward, but it took me some time to figure out