【发布时间】:2018-02-06 13:48:27
【问题描述】:
我正在将 JSP 页面上的 ajax 查询中的纬度、经度和地址值传递给我的 spring 应用程序中的控制器,因此我可以将它们保存到我的 MySQL 数据库中。我知道这些值已从客户端的 ajax 查询成功发送,因为我包含了一个打印语句以在控制台中显示发送的值(打印正确的数据)。但是,当我去查看数据库看是否添加了值时,只添加了纬度和经度值,并且地址(表中的area_name)为空。
+---------+-----------+------------+--------------------+
| area_id | area_name | latitude | longitude |
+---------+-----------+------------+--------------------+
| 1 | NULL | 53.3348279 | -6.269547099999954 |
| 2 | NULL | 53.3498053 | -6.260309699999993 |
| 3 | NULL | 53.39907 | -6.281790799999953 |
+---------+-----------+------------+--------------------+
然后,我查看了表是如何设置的,似乎 area_name 的 null 列设置为 yes,这可能解释了为什么只有此列返回 null。
+-----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+----------------+
| area_id | int(11) | NO | PRI | NULL | auto_increment |
| area_name | varchar(255) | YES | | NULL | |
| latitude | double | NO | | NULL | |
| longitude | double | NO | | NULL | |
+-----------+--------------+------+-----+---------+----------------+
对我来说,这听起来像是 SQL 问题而不是弹簧问题,所以我排除了区域模型类和控制器类中的方法以保持问题简洁,但如果这是错误的,我已经准备好相关代码添加到问题中。
【问题讨论】:
-
要么您使用错误的查询进行更新,要么您没有将传入的结果映射到正在存储的实际实体。对我来说似乎是一个映射问题,实际进入数据库的字段是
null,而不是包含来自网络的值。 -
听起来你忘记在插入查询中设置 area_name。不能肯定地说,因为你没有包含源代码。
-
我不使用任何查询,因为它可以通过实体、存储库和控制器完成。问题是,我在前端有一个名为 address 的变量,并在实体中将它称为 areaName ,所以没有任何东西通过。感谢您的帮助!
标签: mysql spring spring-mvc