Kotlin 扩展Spring数据协程库引发PropertyReferenceException
在我的项目中,我有一个Kotlin(Kotlin 扩展Spring数据协程库引发PropertyReferenceException,kotlin,spring-data-jpa,spring-data,kotlin-coroutines,Kotlin,Spring Data Jpa,Spring Data,Kotlin Coroutines,在我的项目中,我有一个Kotlin(1.3.72)Spring Boot(2.3.3.RELEASE)JPA支持的存储库,它工作正常,Spring应用程序上下文正常启动,项目通过了所有测试,等等: @存储库 接口映射存储库:crudepository{ 有趣的findByCompanyId(companyId:Long):路由映射? } 当我切换到extensingorg.springframework.data.repository.kotlin.CoroutineCrudRepositor
1.3.72
)Spring Boot(2.3.3.RELEASE
)JPA支持的存储库,它工作正常,Spring应用程序上下文正常启动,项目通过了所有测试,等等:
@存储库
接口映射存储库:crudepository{
有趣的findByCompanyId(companyId:Long):路由映射?
}
当我切换到extensingorg.springframework.data.repository.kotlin.CoroutineCrudRepository
时,不做任何更改:
@存储库
接口映射存储库:CoroutineCrudRepository{
有趣的findByCompanyId(companyId:Long):路由映射?
}
启动Spring应用程序上下文在启动时失败,并引发以下错误:
Caused by: org.springframework.data.mapping.PropertyReferenceException:
No property count found for type RoutingMapping!`
这是一个令人困惑的例外,因为路由映射
是映射的@实体
。我不清楚我是否在@Entity
方面遗漏了一些东西,或者这是我对如何使用org.springframework.data.repository.kotlin.CoroutineCrudRepository
的误解
原因:org.springframework.data.mapping.PropertyReferenceException:找不到RoutingMapping类型的属性计数!
位于org.springframework.data.mapping.PropertyPath.(PropertyPath.java:94)
位于org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:382)
位于org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:358)
位于org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:311)
位于java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)
位于org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:293)
位于org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:276)
位于org.springframework.data.repository.query.parser.Part.(Part.java:82)
位于org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:251)
位于java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
位于java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
位于java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
位于java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
位于java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
位于java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
位于java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
位于java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
位于org.springframework.data.repository.query.parser.PartTree$OrPart.(PartTree.java:252)
位于org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:381)
位于java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
位于java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
位于java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
位于java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
位于java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
位于java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
位于java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
位于java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
位于org.springframework.data.repository.query.parser.PartTree$Predicate.(PartTree.java:382)
位于org.springframework.data.repository.query.parser.PartTree.(PartTree.java:94)
位于org.springframework.data.jpa.repository.query.PartTreeJpaQuery(PartTreeJpaQuery.java:89)
... 还有137个
我不确定这是否相关,但当从CoroutineCrudRepository方法返回单个元素时,该方法应标记为suspend
我不确定这是否相关,但当从CoroutineCrudRepository方法返回单个元素时,该方法应标记为suspend
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property count found for type RoutingMapping!
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:94)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:382)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:358)
at org.springframework.data.mapping.PropertyPath.lambda$from$0(PropertyPath.java:311)
at java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:293)
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:276)
at org.springframework.data.repository.query.parser.Part.<init>(Part.java:82)
at org.springframework.data.repository.query.parser.PartTree$OrPart.lambda$new$0(PartTree.java:251)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:252)
at org.springframework.data.repository.query.parser.PartTree$Predicate.lambda$new$0(PartTree.java:381)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:382)
at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:94)
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:89)
... 137 more