V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hellwys1
V2EX  ›  Java

pgsql 新手 jpa 问题,关于 JSONB

  •  
  •   hellwys1 · 2019-01-29 11:53:05 +08:00 · 1704 次点击
    这是一个创建于 2131 天前的主题,其中的信息可能已经有所发展或是发生改变。

    pgsql 新手,如有打扰,请见谅。

    请问诸位大佬,如果我数据库有一张 firends,其中一个字段是 jsonb,字段名为"detail",具体如下:

    {"Tom": {"friendly": {"message": "Hi", "lovely":3 }}

    如何能够通过 JPA 来写 qurey,查找 lovely 等于 3 的所有的 firends 信息呢?

    即 TOM 和 friendly 是变化的,但 lovely 的层级在 jsonb 始终不变的。

    @Query(value = ?????)

    望不吝指教!

    2 条回复    2019-01-29 20:18:48 +08:00
    reus
        1
    reus  
       2019-01-29 16:58:14 +08:00   ❤️ 1
    如果需要查询,就好好设计关系表,不是说查不出来,但很麻烦,又要特别加索引,业务一变你索引又要跟着改

    select * from (
    select *
    from jsonb_each((
    select value
    from jsonb_each((
    select value
    from jsonb_each(
    '{"a": {"b": {"c": "c"}}}'::jsonb
    )
    ))
    ))
    ) t0
    where value = '"c"';

    这样可以把内层的拿出来
    hellwys1
        2
    hellwys1  
    OP
       2019-01-29 20:18:48 +08:00
    @reus
    非常感谢您,^_^。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2809 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:34 · PVG 22:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.