第一:“uuid”类型
在使用“uuid”类型写sql的时候,通常我们需要这么写
#{id,jdbcType=OTHER}::uuid
第二:“jsonb”类型
①.jsonb类型的查询第一种方式
(SELECT vtag::jsonb @>#{vtag,typeHandler=com.slife.pdfg.config.JsonbTypeHandler}::jsonb)
上述方式,在查询的时候,例如:
{"BusTypes": [], "TranType": []}
数据库存储的是上述类型,查询的时候也需是上述类型。
②.jsonb类型的查询第二种方式
select * from ( select *,jsonb_array_elements(ctag->'BusTypes')->>'BValue' as food from test ) as sss where food='day'
这个例子是先把数据转换成json数组,然后在去遍历查询。
数据格式如下:
{"BusTypes": [{"BName": "BName1", "BValue": "day"}, {"BName": "BName2", "BValue": "wet"}, {"BName": "BName3", "BValue": "recoverable"}], "TranType": [{"BName": "BName1", "BValue": "0001"}, {"BName": "BName2", "BValue": "0002"}, {"BName": "BName3", "BValue": "0011"}]}
like查询:
select * from test where ((ctag->'BusTypes') ::text) like '%"BValue": "day"%'