当前位置: 首页 > 知识库问答 >
问题:

Spring数据-2.0.6 java.lang.非法描述异常:找不到类型类Hibernate代理的持久性实体

阴飞星
2023-03-14

尝试访问关联的HibernateProxy实例(延迟提取关联)时,Spring数据失败。

这些最新版本的错误:

    < Li > spring-data-2 . 0 . 6 . release org . hibernate:hibernate-core:5 . 3 . 0 . cr2

实体属性:

@Entity@Table(name="WORKSPACE", uniqueConstraint=@UniqueConstraint(ColumnNames={"EXT_KEY","SERVICE_ID"}))公共类工作区{

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SERVICE_ID", nullable = false, insertable = false, updatable = false)
public Service getService()

延迟提取的关联实体导致HibernateProxy实例失败,并出现以下错误:

java.lang.IllegalArgumentException: Couldn't find PersistentEntity for type class xxx.xxx.xxx.xxx.xxx.Service$HibernateProxy$zKdvHMKB!
    at org.springframework.data.mapping.context.PersistentEntities.lambda$getRequiredPersistentEntity$2(PersistentEntities.java:78) ~[spring-data-commons-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    at java.util.Optional.orElseThrow(Optional.java:290) ~[na:1.8.0_111]
    at org.springframework.data.mapping.context.PersistentEntities.getRequiredPersistentEntity(PersistentEntities.java:77) ~[spring-data-commons-2.0.6.RELEASE.jar:2.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.wrap(PersistentEntityResourceAssembler.java:72) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.toResource(PersistentEntityResourceAssembler.java:55) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.lambda$null$0(RepositoryPropertyReferenceController.java:136) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_111]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController$ReferencedProperty.mapValue(RepositoryPropertyReferenceController.java:450) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.lambda$followPropertyReference$2(RepositoryPropertyReferenceController.java:118) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.lambda$doWithReferencedProperty$16(RepositoryPropertyReferenceController.java:423) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_111]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.doWithReferencedProperty(RepositoryPropertyReferenceController.java:420) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at org.springframework.data.rest.webmvc.RepositoryPropertyReferenceController.followPropertyReference(RepositoryPropertyReferenceController.java:144) ~[spring-data-rest-webmvc-3.0.6.RELEASE.jar:3.0.6.RELEASE]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]

适用于早期版本

    < Li > spring-data-1 . 5 . 12 . release < Li > org . hibernate:hibernate-core:5 . 0 . 4 . final

临时解决方法-将关联的实体获取类型设置为EAGER

@ManyToOne(fetch = FetchType.EAGER)

共有1个答案

颜修明
2023-03-14

Spring数据和Hibernate之间的已知不兼容性 5.3 https://jira.spring.io/projects/SPR/issues/SPR-16569

解决方案1)将hibernate版本降级到5.2或更低版本。

解决方案2)将hibernate设置为使用javassist而不是ByteBuddy

hibernate.bytecode.provider=javassist

谢谢Jens Schauder

 类似资料:
  • 我正在尝试将现有项目转换为使用Spring数据和Neo4j,但我遇到了一些问题。当我尝试生成项目时,我得到以下异常: 我似乎找不到任何关于为什么会出现这个错误的好信息,我也不确定到底是什么导致了这个错误。 以下是大部分超节点类: 它源自AbstractMapValues类: 如您所见,这些旨在表示地图中的点。我的项目中有一个 Neo4j 空间依赖关系,它应该允许我使用索引类型.POINT。 然后我

  • 2周来,我一直在努力寻找此错误的解决方案。你能帮我发生了什么事吗? 以下是错误堆栈跟踪:

  • 嗯,我在谷歌上搜索了一下,找到了很多结果,但是没有一个能回答我的问题。所以,开始了。 我试图通过一个pinterest克隆的最小实现来研究Spring MVC和Spring Data JPA。下面是我认为与我的问题相关的代码部分。 模型/实体 服务 例外情况 异常为“的属性板”。但是,如果我没有理解错的话,属性存在于中,并且与中的正确映射。 我不明白为什么会抛出这个异常。知道为什么会这样吗? 注意

  • 我在sts中创建了一个maven项目,并试图为该项目创建一个war文件。我还为我的类配置了querydsl。当我运行maven install时,一个类给我一个错误响应。 错误:创建在文件[C:\ Users \ Vince \ Documents \ workspace-spring-tool-suite-4-4 . 0 . 1 . release \ project \ target \ te

  • 本文向大家介绍描述保理的类型。,包括了描述保理的类型。的使用技巧和注意事项,需要的朋友参考一下 分解的类型在下面解释- 追索保理-在这种情况下,客户必须从factor处回购未付的应收票据。 无追索权保理-在这种情况下,无法吸收未付发票的客户。 国内保理-当客户,客户和保理人在同一国家/地区时。 出口保理-它涉及四个方面,即出口商,出口因数,进口因数和进口商。也称为跨边界保理。 公开保理-如果商品或

  • 很难弄清楚我是在打虫子还是在做傻事... Spring Boot v2.0.0. M7,sping-data-jpa,sping-data-rest,MySQL 以下@Query 在一个上抛出一个 statusCode是一个varchar,本身作为@Entity按预期工作,但试图投影到字符串列表(或