我正在尝试创建一个 REST 端点来查询名为Postgresql JSONB
的{{1}}列。
JSONB文档的结构不是固定的,每个文档可以具有自己的结构。
其余api网址可以是这样的:
data
,其中/api/lookups?search=name:location
是另一列name
。
在使用规范进行动态查询时,我提到了Baeldung's tutorial。
但是,我需要查询jsonb列中的项目。
我是否可以创建一种逻辑来处理所有可能成功地将我的休息请求参数动态转换为natice查询的场景?
它也可以是可能的场景的列表,例如varchar(250)
,@>
,->
和其他运算符,可以通过在请求参数搜索中使用正则表达式进行匹配。
感谢您的帮助。如果您能指出一个可能重复的问题,我将非常感谢。
我在同一篇文章中搜索了一些教程/示例,发现this question非常有用,现在我确定我需要使用->>
来实现这一点。
但是,我想基于 request param 来动态地进行操作。
表包含
createNativeQuery
例如,如果我的网址是 [ {
"id" : 1001,
"name" : "location",
"data" : {
"country" : "india"
"state":["delhi","karnataka","goa"]}
}, {
"id" : 1002,
"name" : "location",
"data" : {
"country" : "sri lanka"
"state":["trishi","sri raman","colombo"]
},
{
"id" : 1003,
"name" : "location",
"data" : {
"country" : "india"
"language":["english","tamil","kannada", "telugu"]}
}
]
我需要获取所有记录,这些记录的数据键为/api/lookups?search=name:location,data.country:india
,国家/地区的值为country
。
类似地,如果我的网址是india
如果我可以包含类似的模式,这也将有所帮助。
例如/api/lookups?search=name:location,data.country:india,data.country.state:delhi
也是
/api/lookups?search=name:location,data.country:india,data.country.state:*karna*
我需要涵盖所有这些可能的情况,以便从其余端点运行动态查询。
编辑:
URL
/api/lookups?search=name:location,data.coun*:ind*,data.country.sta*:delhi
生成的NativeQuery应该类似于
/api/lookups?search=name:pesticide,name:fertilizer,data.details.state:solid|liquid