4.18毕设

早上一开始做显示历史饮食记录的内容时,就发现一个小问题,我的实体类中有一个属性没有getter和setter方法,后端直接返回一个List对象集合,但是前端接收到的参数没有这个属性

问了一下文心一言,它给我的回复是这样的,

  • 在 MyBatis-Plus 中,当你从数据库查询数据并返回 List 集合时,MyBatis-Plus 会自动将查询结果映射到你的实体类。这个过程是基于实体类的字段和数据库的列之间的映射关系,以及实体类中定义的 getter 和 setter 方法。
  • 如果你没有为实体类的某个属性编写 getter 和 setter 方法,那么:
  • MyBatis-Plus 在映射过程中不会遇到任何问题:因为 MyBatis-Plus 主要是基于字段名和数据库列名的映射来填充实体类的属性,而不是通过 getter 和 setter 方法。

  • 前端获取的数据中是否包含该属性取决于你的序列化方式:当你将 List 集合中的数据返回给前端时,通常会将数据序列化为 JSON 格式。序列化过程是由你使用的 JSON 库(如 Jackson、Gson 等)完成的。

    • 如果 JSON 库是基于反射或字段访问进行序列化的:那么即使你没有为该属性编写 getter 方法,该属性仍然会被序列化到 JSON 中,因为序列化过程是直接访问字段的。
    • 如果 JSON 库是基于 getter 方法进行序列化的:那么没有 getter 方法的属性将不会被序列化到 JSON 中。但是,这种情况比较少见,因为基于字段的序列化更为常见和高效。
  • 为了确保数据的正确性和一致性,建议总是为实体类的所有属性编写 getter 和 setter 方法。这样不仅可以确保 MyBatis-Plus 可以正确地映射数据,还可以确保在其他的序列化或反序列化过程中不会出现问题
  • 最后,你可以通过简单地测试或查看返回的 JSON 数据来验证前端是否确实获取了该属性。

很奇怪的一个小问题,之前没有忘记写getter和setter过,所以这问题也是第一次遇见,大家写的时候注意一点吧

 

今天做了给app端上传饮食以及查看饮食,还有聊天功能下面是截图

 

 

 

posted on 2024-04-18 08:20  付治齐吖  阅读(1)  评论(0编辑  收藏  举报