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

Spring数据JPA“找不到持久性实体”,用于列表[duplicate]

荆煌
2023-03-14

很难弄清楚我是在打虫子还是在做傻事...

Spring Boot v2.0.0. M7,sping-data-jpa,sping-data-rest,MySQL

以下@Query

@Query("select DISTINCT item.statusCode from Item item")
public List<String> lookupStatusCodes();

在一个PagingAndSortingRepository上抛出一个

java.lang.IllegalArgumentException: Couldn't find PersistentEntity for type class java.lang.String!
at org.springframework.data.mapping.context.PersistentEntities.lambda$getRequiredPersistentEntity$2(PersistentEntities.java:78) ~[spring-data-commons-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at java.util.Optional.orElseThrow(Unknown Source) ~[na:1.8.0_151]
at org.springframework.data.mapping.context.PersistentEntities.getRequiredPersistentEntity(PersistentEntities.java:77) ~[spring-data-commons-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.data.rest.webmvc.PersistentEntityResourceAssembler.wrap(PersistentEntityResourceAssembler.java:72) ~[spring-data-rest-webmvc-3.0.2.RELEASE.jar:3.0.2.RELEASE]

statusCode是一个varchar,本身作为@Entity按预期工作,但试图投影到字符串列表(或列表)

如果重要的话,我故意不想返回页面


共有1个答案

夏学名
2023-03-14

无法直接映射字符串。你需要一个映射器对象。创建一个带有字符串字段的模型类-

package org.xyz.model;

import java.io.Serializable;

public class StringResult implements Serializable {

    private static final long serialVersionUID = 1L;
    private String result;

    public StringResult(
        String result) {
        super();
        this.result = result;
    }

    public String getResult() {
        return result;
    }
}

然后将查询更改为使用模型类-

@Query("select new org.xyz.model.StringResult(DISTINCT item.statusCode as result) from Item item")
public List<StringResult> lookupStatusCodes();
 类似资料:
  • 我正在创建一个新项目,并使用Spring Data JPA创建一些RESTendpoint。 只要json文件没有任何oneToMany数据,我就可以将其放到并持久化到我的主类(customer)中。然而,当张贴给客户,如果有任何数据,我会得到错误。 那些电子邮件 postman json测试 顺便说一句,我已经确认在客户控制器中,电子邮件包括在客户的请求体中。 客户控制器 因此,对于post或p

  • 我们在尝试用数据库实现梯子游戏应用程序时遇到了一个问题。我们有一个名为'spill'的实体,它与另一个名为'brett'的实体有一个ManyToOne关系。 在过去的几个小时里,我们一直在网上搜索,试图找出这个问题,但我们找不到解决办法。 完整控制台日志:

  • 我试图集成Spring和JSF,我坚持使用对象。我不想处理事务(begin-commit等) 经过一些谷歌,我可以找到一个答案,给我需要在这个链接 我使用eclipselink作为ORM和Oracle 11g数据库,并使用带有Maven的Glassfish Server3.1。我更喜欢Spring配置的注释。我用 相关类中的注释。我的名称是E_DefterManagementPU,我的事务类型是J

  • 这就是我的datasourcebean的样子

  • 当应用程序基于Spring Boot时,不考虑定义的实体图。相反,在JUnit测试期间,一切正常。 领域非常简单:书籍及其类别(多对多关系) 图书类: 类别类: 带有使用创建的实体图的方法的JPA存储库: REST控制器中的用法: 启动Spring Boot(mvn Spring Boot:run)并导航到http://localhost:8080/books书籍会被显示,但它们有各自的类别(由于