IDEA14 hibernate :createQuery("from UserEntity")Can't resolve symbol 'UserEntity' less..

在使用IDEA14和Hibernate框架时遇到问题,提示'UserEntity'符号无法解析。该问题可通过禁用Persistence QL查询错误检查来解决。在错误代码行左侧找到红色灯泡图标,选择禁用Hibernate QL检查选项即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:IDEA14 

框架:hibernate


问题截图:


问题描述:

Can't resolve symbol 'UserEntity' less..
无法解析符号 'UserEntity' 。
This inspection controls whether the Persistence QL Queries are error-checked
这次检查控制持久性 QL 查询是否错误检查



解决办法:

        鼠标移到 提示错误的代码上,左边显示一个红色的灯泡,有个选项里面有个禁用ql检查的,禁用了就好了


原文解释:http://www.progtown.com/topic1153146-idea-7-swears-on-hibernate-hql.html

Found.
发现。
It is necessary on a line with an error, to the left of a line a sign "bulb", on it you direct - the link on Hibernate QL inspection options, and there among options "disable inspection".
它是必要的在一条线的一个错误,左边的一条线一个标志"灯泡",关于它你直接-上休眠 QL 检查选项的链接和那里选项中"禁用检查"。





2025-06-06 17:16:24.881 ERROR 30060 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dingdanService': Unsatisfied dependency expressed through field 'dingdanRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dingdanRepository' defined in com.kucun.dataDo.DingdanRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.kucun.dataDo.DingdanRepository.findInventoryByOrderId(java.lang.Integer)! at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1425) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:173) [spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:153) [spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:95) [spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:172) [spring-web-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5128) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37] at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717) [catalina.jar:9.0.37] at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690) [catalina.jar:9.0.37] at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) [catalina.jar:9.0.37] at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1133) [catalina.jar:9.0.37] at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1866) [catalina.jar:9.0.37] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_331] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_331] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.37] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [na:1.8.0_331] at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1045) [catalina.jar:9.0.37] at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429) [catalina.jar:9.0.37] at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576) [catalina.jar:9.0.37] at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.37] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936) [catalina.jar:9.0.37] at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:841) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384) [catalina.jar:9.0.37] at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374) [catalina.jar:9.0.37] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_331] at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.37] at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [na:1.8.0_331] at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909) [catalina.jar:9.0.37] at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37] at org.apache.catalina.core.StandardService.startInternal(StandardService.java:421) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37] at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930) [catalina.jar:9.0.37] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.37] at org.apache.catalina.startup.Catalina.start(Catalina.java:738) [catalina.jar:9.0.37] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_331] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_331] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_331] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_331] at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342) [bootstrap.jar:9.0.37] at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473) [bootstrap.jar:9.0.37] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dingdanRepository' defined in com.kucun.dataDo.DingdanRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.kucun.dataDo.DingdanRepository.findInventoryByOrderId(java.lang.Integer)! at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1799) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] ... 62 common frames omitted Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.kucun.dataDo.DingdanRepository.findInventoryByOrderId(java.lang.Integer)! at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:93) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.SimpleJpaQuery.<init>(SimpleJpaQuery.java:63) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.java:76) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromQueryAnnotation(JpaQueryFactory.java:56) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$DeclaredQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:146) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:216) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:81) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:99) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(QueryExecutorMethodInterceptor.java:92) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_331] at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[na:1.8.0_331] at java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1051) ~[na:1.8.0_331] at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:1.8.0_331] at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_331] at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_331] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_331] at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_331] at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_331] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:94) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:84) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_331] at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:84) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:332) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$4(RepositoryFactoryBeanSupport.java:294) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.util.Lazy.getNullable(Lazy.java:211) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.util.Lazy.get(Lazy.java:95) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:300) ~[spring-data-commons-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:144) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1858) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] ... 72 common frames omitted Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: chanping of: com.kucun.data.entity.Dingdan_chanpin [SELECT new com.kucun.data.dto.OrderInventoryDTO(d.id, d.number, dc.id, cp.bianhao, b.id, b.houdu, c.name, k.shuliang) FROM com.kucun.data.entity.Dingdan d JOIN d.dingdan_chanpins dc JOIN dc.chanping cp JOIN cp.zujians cz JOIN cz.bancai b JOIN b.caizhi c JOIN b.kucun k WHERE d.id = :orderId] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:734) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:23) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_331] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_331] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_331] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_331] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:366) ~[spring-orm-5.2.15.RELEASE.jar:5.2.15.RELEASE] at com.sun.proxy.$Proxy94.createQuery(Unknown Source) ~[na:na] at org.springframework.data.jpa.repository.query.SimpleJpaQuery.validateQuery(SimpleJpaQuery.java:87) ~[spring-data-jpa-2.3.9.RELEASE.jar:2.3.9.RELEASE] ... 101 common frames omitted Caused by: org.hibernate.QueryException: could not resolve property: chanping of: com.kucun.data.entity.Dingdan_chanpin [SELECT new com.kucun.data.dto.OrderInventoryDTO(d.id, d.number, dc.id, cp.bianhao, b.id, b.houdu, c.name, k.shuliang) FROM com.kucun.data.entity.Dingdan d JOIN d.dingdan_chanpins dc JOIN dc.chanping cp JOIN cp.zujians cz JOIN cz.bancai b JOIN b.caizhi c JOIN b.kucun k WHERE d.id = :orderId] at org.hibernate.QueryException.generateQueryException(QueryException.java:120) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:220) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:113) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:613) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:725) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] ... 109 common frames omitted Caused by: org.hibernate.QueryException: could not resolve property: chanping of: com.kucun.data.entity.Dingdan_chanpin at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:77) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:71) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:2039) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.persister.collection.AbstractCollectionPersister.toType(AbstractCollectionPersister.java:1662) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.FromElementType.getPropertyType(FromElementType.java:412) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.FromElement.getPropertyType(FromElement.java:520) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.DotNode.getDataType(DotNode.java:695) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.DotNode.prepareLhs(DotNode.java:269) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.DotNode.resolve(DotNode.java:209) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:114) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:109) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:410) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3990) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3776) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3654) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:737) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:593) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:330) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:278) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:276) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:192) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final] ... 115 common frames omitted
最新发布
06-07
<think>我们正在处理一个SpringBoot应用启动失败的问题。从错误日志中,我们可以看到以下关键信息:错误原因:```org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'dingdanService':Unsatisfieddependencyexpressedthroughfield'dingdanRepository';nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'dingdanRepository'definedincom.kucun.dataDo.DingdanRepositorydefinedin@EnableJpaRepositoriesdeclaredonJpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration:Invocationofinitmethodfailed;nestedexceptionisjava.lang.IllegalArgumentException:Validationfailedforqueryformethodpublicabstractjava.util.Listcom.kucun.dataDo.DingdanRepository.findInventoryByOrderId(java.lang.Integer)!```进一步的原因:```Causedby:java.lang.IllegalArgumentException:Validationfailedforqueryformethodpublicabstractjava.util.Listcom.kucun.dataDo.DingdanRepository.findInventoryByOrderId(java.lang.Integer)!```再往下看:```Causedby:org.hibernate.QueryException:couldnotresolveproperty:chanpingof:com.kucun.data.entity.Dingdan_chanpin[SELECTnewcom.kucun.data.dto.OrderInventoryDTO(d.id,d.number,dc.id,cp.bianhao,b.id,b.houdu,c.name,k.shuliang)FROMcom.kucun.data.entity.DingdandJOINd.dingdan_chanpinsdcJOINdc.chanpingcpJOINcp.zujiansczJOINcz.bancaibJOINb.caizhicJOINb.kucunkWHEREd.id=:orderId]```所以,问题出在`DingdanRepository`中的方法`findInventoryByOrderId`对应的查询语句中。Hibernate在验证这个查询时,无法在实体类`Dingdan_chanpin`中找到名为`chanping`的属性。错误信息明确指出:`couldnotresolveproperty:chanpingof:com.kucun.data.entity.Dingdan_chanpin`。这意味着在实体类`Dingdan_chanpin`中,我们可能有一个拼写错误或者属性名不一致的情况。正确的属性名应该是什么?根据实体类设计,可能是`chanpin`(产品)而不是`chanping`。解决方案步骤:1.检查实体类`Dingdan_chanpin`中关联产品的属性名。假设正确的属性名应该是`chanpin`(没有g),那么我们需要将查询中的`dc.chanping`改为`dc.chanpin`。2.如果实体类中确实定义的是`chanping`,那么请确保该属性存在且拼写正确(包括大小写)。但根据错误信息,Hibernate找不到该属性,所以很可能是拼写错误。3.修改Repository中的查询语句。假设在实体类`Dingdan_chanpin`中,我们有一个`@ManyToOne`关联到产品,并且属性名为`chanpin`,那么正确的JPQL应该为:```java@Query("SELECTnewcom.kucun.data.dto.OrderInventoryDTO(d.id,d.number,dc.id,cp.bianhao,b.id,b.houdu,c.name,k.shuliang)"+"FROMDingdand"+"JOINd.dingdan_chanpinsdc"+"JOINdc.chanpincp"+//注意这里改为chanpin"JOINcp.zujianscz"+"JOINcz.bancaib"+"JOINb.caizhic"+"JOINb.kucunk"+"WHEREd.id=:orderId")List<OrderInventoryDTO>findInventoryByOrderId(IntegerorderId);```但是,请注意错误日志中的实体类名为`Dingdan_chanpin`,通常我们建议实体类名使用大写字母开头(如DingdanChanpin),但这里我们先按照实际的类名处理。另外,请注意查询中的其他部分是否也有拼写错误。比如,`dingdan_chanpins`是否在实体类`Dingdan`中正确命名?同样需要检查。4.如果实体类中的属性名确实为`chanping`,但是Hibernate找不到,请确保在实体类中这个属性有正确的getter和setter方法,并且使用了JPA注解(如@ManyToOne)进行映射。5.此外,还需要检查实体类中关联关系的映射是否正确,尤其是关联的字段名称。如果我们在实体类中定义如下:```java@EntitypublicclassDingdan_chanpin{//...其他字段@ManyToOne@JoinColumn(name="chanpin_id")privateChanpinchanpin;//注意属性名是chanpin}```那么查询中就应该使用`dc.chanpin`。因此,错误就是因为查询中使用了`dc.chanping`(多了一个g)导致的。修改后的代码示例:在`DingdanRepository`接口中,修改查询语句,将`dc.chanping`改为`dc.chanpin`(或其他正确的属性名)。另外,请检查实体类中的属性名,确保一致。如果问题仍然存在,请检查整个关联路径是否正确,包括关联的实体类名、属性名是否都正确。最后,重新启动应用。注意:如果还有其他类似的拼写错误,也需要一并修正。###总结错误是由于JPQL查询中引用了一个不存在的属性`chanping`,而正确的属性名应为`chanpin`(或其他)。修改JPQL中的属性名即可。§§相关问题§§:1.如何解决Hibernate中的“couldnotresolveproperty”错误?2.SpringDataJPA查询方法有哪些常见的错误?3.如何调试和验证SpringDataJPA的查询语句?4.Hibernate中实体类关联关系的映射方法有哪些?5.在JPQL中如何正确引用实体类的属性?</think> ### 解决 Spring Data JPA 查询验证失败的问题 根据错误日志分析,主要问题是 **`could not resolve property: chanping`** 的 JPQL 查询错误,原因是在 `Dingdan_chanpin` 实体中找不到 `chanping` 属性。以下是完整的解决方案: #### 错误诊断与修复步骤 ##### 1. 实体关系映射问题分析 **根本原因**:JPQL 查询中引用了不存在的属性 `chanping` ```sql JOIN dc.chanping cp // ❌ 属性名错误 ``` **修复方案**: 在 `Dingdan_chanpin` 实体中检查属性名称(应为驼峰命名法) ```java // Dingdan_chanpin.java 实体配置 @Entity public class Dingdan_chanpin { // 确保使用正确的属性名 @ManyToOne @JoinColumn(name = "chanpin_id") private Chanpin chanpin; // ✔️ 正确属性名 // ❌ 错误的属性名 (会导致JPQL验证失败) // private Chanping chanping; } ``` ##### 2. 修复 Repository 接口的 JPQL 修改 `DingdanRepository` 中错误的属性引用: ```java // 修复后的查询语句(变更点:dc.chanping → dc.chanpin) @Query("SELECT new com.kucun.data.dto.OrderInventoryDTO(" + "d.id, d.number, dc.id, cp.bianhao, b.id, b.houdu, c.name, k.shuliang) " + "FROM Dingdan d " + "JOIN d.dingdan_chanpins dc " + "JOIN dc.chanpin cp " + // ✔️ 修正属性引用 "JOIN cp.zujians cz " + "JOIN cz.bancai b " + "JOIN b.caizhi c " + "JOIN b.kucun k " + "WHERE d.id = :orderId") List<OrderInventoryDTO> findInventoryByOrderId(Integer orderId); ``` ##### 3. 验证实体关联关系 确保所有关联实体存在且映射正确: ```java // Chanpin.java 产品实体 @Entity public class Chanpin { @Id private Integer id; @OneToMany(mappedBy = "chanpin") private List<Zujian> zujians; // 组件集合 // getters/setters } // Zujian.java 组件实体 @Entity public class Zujian { @ManyToOne @JoinColumn(name = "bancai_id") private Bancai bancai; } ``` ##### 4. 使用 Hibernate 验证工具调试 在 `application.properties` 中启用验证: ```properties # 启用DDL自动验证 spring.jpa.hibernate.ddl-auto=validate # 显示绑定参数 logging.level.org.hibernate.type.descriptor.sql=TRACE ``` 启动时将自动验证映射一致性,错误示例: ``` Binding parameter [orderId] as [INTEGER] - [123] ``` #### 替代解决方案(方法名查询) 如果不想写 `@Query`,改用方法名派生查询: ```java public interface DingdanRepository extends JpaRepository<Dingdan, Integer> { // 通过方法名自动生成查询 List<Dingdan_chanpin> findByChanpinId(Integer chanpinId); } ``` 需要确保实体中有直接关联: ```java // Dingdan.java 订单实体 public class Dingdan { @OneToMany(mappedBy = "dingdan") private List<Dingdan_chanpin> dingdan_chanpins; } // Dingdan_chanpin.java public class Dingdan_chanpin { @ManyToOne private Dingdan dingdan; @ManyToOne private Chanpin chanpin; } ``` #### 完整调试流程 1. **检查所有实体类**:确认属性名与JPQL引用完全一致 2. **简化复杂查询**:拆分为多个简单查询逐步测试 3. **验证DTO构造函数**:确保参数类型/顺序匹配 4. **启用SQL日志**:分析实际生成的SQL语句
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值