将jsonb记录映射到自定义数据类型的正确方法是什么? 就像普通的表字段一样.
create table t_order
(
id serial
constraint t_order_pk
primary key,
key varchar(255) not null,
value jsonb not null
);
create unique index t_order_id_uindex
on t_order (id);
create index t_order_value_index
on t_order using gin (value);
@Data
@Builder
class Order {
private List<OrderItem> orderItems;
@Data
@Builder
public static class OrderItem {
private BigDecimal price;
private BigDecimal quantity;
}
}
@Test
void findOrderById() {
var order =
dsl.select(T_ORDER.VALUE)
.from(T_ORDER)
.where(T_ORDER.ID.eq(1))
.fetchOptionalInto(Order.class); // OOPS!
assertTrue(order.isPresent());
log.info(order);
}