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

求助:jpa 不使用原生 sql 如何实现 jsonb 字段排序?

  •  
  •   tuine · 2021-05-26 23:27:00 +08:00 via iPhone · 1444 次点击
    这是一个创建于 1284 天前的主题,其中的信息可能已经有所发展或是发生改变。

    直接使用会报错:No property jsonbField->'field' found for type TestEntity 代码如下: Pageable pageable = PageRequest.of(1, 2, JpaSort.unsafe(Sort.Direction.ASC, "jsonbField->'field'")); Page<TestEntity> page = testRepository.findAll(pageable);

    使用 nativeQuery 结合 pageable 没有问题,现在需要复杂筛选如何使用 Criteria 查询实现?

    2 条回复    2021-05-27 14:23:40 +08:00
    akiza
        1
    akiza  
       2021-05-27 10:16:50 +08:00
    可以试试 @Formula 注解,@Formula("JSON_EXTRACT(field, '$.filed.orderFiled')")
    tuine
        2
    tuine  
    OP
       2021-05-27 14:23:40 +08:00
    @akiza jsonbField 字段中的数据是可变的,所以排序的字段也不固定,如果用这个注解就需要事先定义出来
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2311 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:19 · PVG 08:19 · LAX 16:19 · JFK 19:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.