java - 邮政编码列表 - MySql JSON 数组

标签 java mysql hibernate

所以我有一个邮政编码列表,我应该如何将其保存到 mySql 中?我想的是一个 JSON 数组。现在我只能在给定的 JSON 数组中查找特定的邮政编码。

insert into Test values (2, '[22279, 22510, 12345, 65412, 78954]');

我想我会使用 JSON_CONTAINS,但我似乎不知道如何使用它:

SELECT * FROM Test WHERE 
    JSON_CONTAINS(testJson, 22079);

我在上述查询中遇到此错误:

SELECT * FROM Test WHERE      JSON_CONTAINS(testJson, 22079) LIMIT 0, 1000  Error Code: 3146. Invalid data type for JSON data in argument 2 to function json_contains; a JSON string or JSON type is required.

哦,我将如何使用 hibernate 来执行上述查询?

最佳答案

这似乎有效:

SELECT * FROM Test WHERE 
    JSON_CONTAINS(testJson, '12345');

这也适用于 Postman:

{
    "test": {
        "id": "5",
        "testJson" : "[22079, 22310, 12345, 65412, 78954]"
    }
}

Java pojo 看起来像:

import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Test {

    @Id
    private Integer id;
    private String testJson;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTestJson() {
        return testJson;
    }

    public void setTestJson(String testJson) {
        this.testJson = testJson;
    }

}

关于java - 邮政编码列表 - MySql JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48473303/

相关文章:

java - 非法参数异常 : ProtectionToken is not a <wsp:Policy> element

java - Maven : remove a single transitive dependency

php - 停止从 CSV 插入第一行

java - 程序运行时的 Dropwizard session

java - 在 Hibernate 中使用 native SQL 查询将结果集放入 DTO

java - 是否可以在同一个实体类中维护不同的模式

java - IDEA、Hamcrest 和静态导入

java - Jvm 需要很长时间才能解析 localhost 的 ip-address

mysql - 通过触发器插入后如何更新表?

mysql - ODBC MySQL 连接器 : Does not work with chars like "ä, ö, ü"