【问题标题】:Spring Data JPA findAll() or findbyId() return wrong value in spring bootSpring Data JPA findAll() 或 findbyId() 在 Spring Boot 中返回错误值
【发布时间】:2023-03-12 14:05:02
【问题描述】:

当我尝试从 SQL Server 检索数据时,我目前正在努力使用 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]

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

【问题讨论】:

  • 尝试覆盖 Alien 类中的 toString 方法。并将 getAlien() 方法的返回类型更改为 List ,除非您不希望返回 List 类型。
  • 它实际上返回 Alien 的实例,但是,正如 Pavan 指出的那样,由于您没有覆盖 toString 方法,因此您从 Object 中获得了它覆盖的实现,这意味着您正在打印参考跨度>
  • 你使用的是 spring-boot 还是 spring-mvc ?

标签: java spring-boot spring-mvc spring-data-jpa


【解决方案1】:

您可以将数据发送为List&lt;Alien&gt; 并使用MediaType.APPLICATION_JSON_VALUE 获取json 响应

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

如果你想将列表作为字符串返回,或者在Alien类中定义toString方法

【讨论】:

    【解决方案2】:

    com.example.demo.model.Alien@1f012f9c 的值是 toString() 方法的默认实现。

    添加toString()你的Alien类。

    例子:

    @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 + '\'' +
                '}';
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-14
      • 2021-09-27
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 2017-08-29
      相关资源
      最近更新 更多