Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CrudRespository未获取所需列表,而是看到PersistentBag错误_Java_Spring Boot_Modelmapper - Fatal编程技术网

Java CrudRespository未获取所需列表,而是看到PersistentBag错误

Java CrudRespository未获取所需列表,而是看到PersistentBag错误,java,spring-boot,modelmapper,Java,Spring Boot,Modelmapper,我有一个简单的RestController,它通过扩展org.springframework.data.repository.paging和sortingrepository接口,在调用数据库之后返回一个用户对象 现在的挑战是,当我调用UserObject时,addresses返回Persistentbag Error 发生错误异常:com.sun.jdi.InvocationException调用方法时发生 @实体(name=“users”) 公共类UserEntity实现可序列化{ 私有静

我有一个简单的RestController,它通过扩展org.springframework.data.repository.paging和sortingrepository接口,在调用数据库之后返回一个用户对象

现在的挑战是,当我调用UserObject时,addresses返回Persistentbag Error

发生错误异常:com.sun.jdi.InvocationException调用方法时发生

@实体(name=“users”)
公共类UserEntity实现可序列化{
私有静态最终长serialVersionUID=-2675537776836756234L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@OneToMany(fetch=FetchType.LAZY,mappedBy=“userDetails”,cascade=CascadeType.ALL)
私有列表地址=新的ArrayList();
//构造函数、getter、setter和toString()
}
@实体(名称=“地址”)
公共类AddressEntity实现可序列化{
私有静态最终长serialVersionUID=4209374923046988553L;
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@许多酮
@JoinColumn(name=“users\u id”)
私有用户实体用户详细信息;
//构造函数、getter、setter和toString()
}
和控制器

@RequestMapping(value = "/pagedList", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE,
        MediaType.APPLICATION_XML_VALUE })
public List<UserRest> getUsers(@RequestParam(value = "page", defaultValue = "0") int page,
        @RequestParam(value = "limit", defaultValue = "25") int limit) {
    List<UserRest> returnvalue = new ArrayList<>();
    List<UserDTO> userDTO = userService.getUsers(page, limit);
    for (UserDTO source : userDTO) {
        UserRest target = modelMapper.map(source, UserRest.class);
        target.setDate(source.getCreatedAt());
        returnvalue.add(target);
    }
    return returnvalue;
}
@RequestMapping(value=“/pagedList”,method=RequestMethod.GET,products={MediaType.APPLICATION\u JSON\u value,
MediaType.APPLICATION_XML_VALUE})
公共列表getUsers(@RequestParam(value=“page”,defaultValue=“0”)int page,
@RequestParam(value=“limit”,defaultValue=“25”)int limit){
List returnvalue=new ArrayList();
List userDTO=userService.getUsers(第页,限制);
for(UserDTO来源:UserDTO){
UserRest target=modelMapper.map(源,UserRest.class);
target.setDate(source.getCreatedAt());
returnvalue.add(目标);
}
返回值;
}
UserService类:

public List<UserDTO> getUsers(int page, int limit) {
    List<UserDTO> returnvalue = new ArrayList<>();
    if (page > 0)
        page -= 1;
    Pageable pageableRequest = PageRequest.of(page, limit);
    Page<UserEntity> usersPage = userRepo.findAll(pageableRequest);//Returns Nothing for addresses at this point
    List<UserEntity> users = usersPage.getContent();

    for (UserEntity source : users) {
        returnvalue.add(modelMapper.map(source, UserDTO.class));
    }
    return returnvalue;
}
公共列表getUsers(整数页,整数限制){
List returnvalue=new ArrayList();
如果(页面>0)
第-=1页;
Pageable pageableRequest=PageRequest.of(第页,限制);
Page usersPage=userRepo.findAll(pageableRequest);//此时不返回任何地址
List users=usersPage.getContent();
for(用户实体来源:用户){
add(modelMapper.map(source,UserDTO.class));
}
返回值;
}

谢谢

所以我发现将注释更改为

@OneToMany(fetch=FetchType.EAGER,mappedBy=“userDetails”,cascade=CascadeType.ALL)

解决了这个问题

谢谢大家

请发布您的问题,以便其他人更容易找出问题所在。
public List<UserDTO> getUsers(int page, int limit) {
    List<UserDTO> returnvalue = new ArrayList<>();
    if (page > 0)
        page -= 1;
    Pageable pageableRequest = PageRequest.of(page, limit);
    Page<UserEntity> usersPage = userRepo.findAll(pageableRequest);//Returns Nothing for addresses at this point
    List<UserEntity> users = usersPage.getContent();

    for (UserEntity source : users) {
        returnvalue.add(modelMapper.map(source, UserDTO.class));
    }
    return returnvalue;
}