I am using Java, Spring boot, MySQL and data JPA. Check my code here

@Column(name = "point", columnDefinition = "POINT")
private Point point;

And in my application.properties file, I've Added

spring.jpa.properties.hibernate.dialect = org.hibernate.spatial.dialect.mysql.MySQL56SpatialDialect

While passing a JSON like "point": "51.61100420, -0.10213410" I'm getting this error

> “JSON 解析错误:无法构造实例org.springframework.data.geo.Point(尽管至少存在一个 Creator):没有字符串参数构造函数/工厂方法可从字符串值 ('(51.61100420, -0.10213410)') 反序列化;嵌套异常为 com.fasterxml。 jackson.databind.exc.MismatchedInputException:无法构造实例org.springframework.data.geo.Point(尽管至少存在一个创建者):没有字符串参数构造函数/工厂方法来从字符串值('(51.61100420,-0.10213410)')反序列化\n在[来源: (PushbackInputStream);行:11,列:12]

请帮我解决这个问题,提前致谢


那是什么Point班级?

@Andreas它来自包org.springframework.data.geo;

因为Point有 agetX()和 agetY()方法,所以它的默认序列化 JSON 是"point": { "x": 51.61100420, "y": -0.10213410 },但默认情况下对该 JSON 文本反序列化不起作用,因为没有 setter 方法。对于 JSON text "point": "51.61100420, -0.10213410",默认的反序列化器需要一个带有String参数的构造函数,但Point没有。您需要提供自定义(反)序列化器。

是的,好吧@Andreas!谢谢