gpt4 book ai didi

java - Spring Data Rest not working——寻找无限递归错误的根源

转载 作者:行者123 更新时间:2023-11-30 11:02:42 25 4
gpt4 key购买 nike

简而言之

我需要找到显示在 spring data rest 中的错误消息的根本原因。如何通过查看一般错误消息找到我应该放置 @JsonIgnore@RestResource(exported = false) 的确切位置?

详细说明

我用 spring data rest 嵌入了我的 Spring 应用程序。尽管有很多实体和存储库,但我只希望通过 rest 公开很少的实体。其中一个实体是 user

但我收到以下错误消息。 我怎样才能深入到我能真正找到这个一般错误消息的根本原因的地方?

Could not write content: Infinite recursion (StackOverflowError) (through reference chain: org.springframework.hateoas.Resources["_embedded"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: org.springframework.hateoas.Resources["_embedded"])

存储库

@RepositoryRestResource(collectionResourceRel = "system-users", itemResourceRel = "system-user", path = "system-users")
public interface UserRepository extends CrudRepository<User, Long>, DatatablesCriteriasRepository<User>{

@RestResource(exported = false)
@Query("SELECT u FROM User u INNER JOIN u.roles role WHERE role.role in :roles")
Iterable<User> findByRoles(@Param("roles") String... roles);

@RestResource(exported = false)
@Query("SELECT u FROM User u WHERE u.username = :username")
User findByUsername(@Param("username") String username);
...
...
}

型号

@Entity
@Table(name = "system_user_tab")
public class User{
...
...

我知道通过使用 @JsonIgnore, @RestResource(exported = false) 我可以尝试消除这个问题。但是我需要通过查看此错误消息来了解如何理解我必须使用这些注释的确切位置。

最佳答案

您可以在较新版本的 Spring Data Rest 2.4.0.RELEASE 中执行此操作:

Could not write content: Infinite recursion (StackOverflowError) (through reference chain: org.springframework.hateoas.PagedResources[\"_embedded\"]->java.util.UnmodifiableMap[\"payment\"]->java.util.ArrayList[0]->org.springframework.data.rest.webmvc.json.ProjectionResource[\"content\"]->$Proxy153[\"subject\"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: org.springframework.hateoas.PagedResources[\"_embedded\"]->java.util.UnmodifiableMap[\"payment\"]->java.util.ArrayList[0]->org.springframework.data.rest.webmvc.json.ProjectionResource[\"content\"]->$Proxy153[\

它将是字段 subject

关于java - Spring Data Rest not working——寻找无限递归错误的根源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30682797/

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