![](/img/trans.png)
[英]Spring boot populating cache used by findById method with findAll method
[英]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.