繁体   English   中英

Spring 数据 JPA findAll() 或 findbyId() 在 spring 引导中返回错误值

[英]Spring Data JPA findAll() or findbyId() return wrong value in spring boot

当我尝试从 SQL 服务器检索数据时,我目前正在努力使用 findAll() 方法,这是我的代码:

外星人:

 @Entity
public class Alien {
    @Id
    private String aid;
    private String name;
    private String tech;

外星人控制器:

@Controller
public class AlienController {

@Autowired
AlienRepository repo;

@RequestMapping("/")
public String home() {
    return "home.jsp";
}
@RequestMapping("/getAliens")
@ResponseBody
public String getAlien() {
    return repo.findAll().toString();
  }
}

存储库

public interface AlienRepository extends CrudRepository<Alien, String>{

}

我的问题是每当我尝试检索数据库中的所有外星人时,我通常都会得到这个值

[com.example.demo.model.Alien@1f012f9c, com.example.demo.model.Alien@553ee2df, com.example.demo.model.Alien@67c572ce]

通常它必须返回外星人的价值,比如援助、名称和技术,但我得到的只是这个

您可以将数据作为List<Alien>发送并使用MediaType.APPLICATION_JSON_VALUE获取 json 响应

  @RequestMapping("/getAliens", produces = MediaType.APPLICATION_JSON_VALUE)
  @ResponseBody
  public List<Alien> getAlien() {
    return repo.findAll();
  }

或者如果要将列表返回为字符串,请在Alien class 中定义 toString 方法

默认情况下返回值com.example.demo.model.Alien@1f012f9c实现toString()方法。

添加toString()你外星人 class。

例子:

@Entity
public class Alien {

  @Id
  private String aid;
  private String name;
  private String tech;

  @Override
  public String toString() {
    return "Alien{" +
            "aid='" + aid + '\'' +
            ", name='" + name + '\'' +
            ", tech='" + tech + '\'' +
            '}';
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM