如何在Spring数据存储库中制定查询注释以读取JSON数据?

时间:2018-10-19 16:41:10

标签: json spring repository

我正在努力在Spring数据存储库中为以下情况制定Query批注。

目标表中有一个名为Role的列,其数据类型为CLOB,它将在json中包含一个或多个值。

{
    "role" : ["Foo","Bar","Boo"]
}

我有这样的存储库,该存储库将根据输入参数返回RoleInfo对象,因此,如果输入为Foo,则它将匹配并应返回预期的对象/记录。

RoleInfo findRoleInfo(String role)

我接触过非常简单的操作,其中role在文本中将具有单个值。如果Roles列的文本中包含单个值Foo,以下示例将起作用,但我不确定以下语法是否正确。我可以尝试抛出什么输出或异常,但是在我工作的商店中进行测试有点昂贵。在执行运行时测试之前,我想对正确的语法有所了解。非常感谢您的建议/意见。

@Query("from RoleInfo where role=?1")

更新:

花了一两天后,我问的问题变得很清楚。如果我最初的问题不清楚,我要道歉。从以下线程中读取了答案。

我需要使用like中的JPQL子句。由于我要处理的程序使用的是Spring Data jpa 1.3.1的早期版本,因此无法将%直接注入JPQL中,而不得不将其添加到调用方函数的参数中。

我也将名为CLOB的列的数据类型从varchar2更改为Role。我从读取数据时遇到ORA-00932 inconsistent data types错误。该角色可能会有很长的字符列表,但是CLOB中有三个字符串值导致Oracle质疑我对数据类型的选择。众所周知,4000数据类型的最大字符长度可以为varchar2个字节。

0 个答案:

没有答案