-6ren"> -这个问题在这里已经有了答案: Spring Data JPA - Get All Unique Values in Column (2 个回答) 3年前关闭。 很难弄清楚我是遇到错误还是做了一些愚蠢的-6ren">
gpt4 book ai didi

spring-boot - Spring Data JPA "Couldn' t find PersistentEntity"for List

转载 作者:行者123 更新时间:2023-12-04 21:32:12 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Spring Data JPA - Get All Unique Values in Column

(2 个回答)


3年前关闭。




很难弄清楚我是遇到错误还是做了一些愚蠢的事情......

Spring Boot v2.0.0.M7、spring-data-jpa、spring-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 和 Item本身像@Entity 一样按预期工作,但尝试投影到字符串列表(或 List<Object> )因上述情况而失败。

如果重要的话,我故意不想返回 Page<String>这里(不需要分页,因为预期的结果集很小)。

最佳答案

不能直接映射字符串。您将需要一个映射器对象。创建一个带有字符串字段的模型类 -

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-boot - Spring Data JPA "Couldn' t find PersistentEntity"for List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com