【问题标题】:How can I send default value to CriteriaBuilder constructor based selection field?如何将默认值发送到基于 CriteriaBuilder 构造函数的选择字段?
【发布时间】:2017-09-05 11:50:52
【问题描述】:

我正在使用 JPA CriteriaBuilder 创建查询并使用构造函数基选择。但在我的情况下,我想要特定参数(虚拟)的一些默认值。但该参数不是表格列。

有什么办法可以做到吗?

CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<HEntity> cq = cb.createQuery(HEntity.class);
Root<HTable> root = cq.from(HTable.class);

// original selection criteria
// build result set class
cq.select(cb.construct(HDto.class,
                root.<Long>get("id"),
                root.<Date>get("datetime"),
                root.get("device")
               )

有没有办法实现如下?

// build result set class
cq.select(cb.construct(HDto.class,
                root.<Long>get("id"),
                root.<Date>get("datetime"),
                root.get("devicename"),
                "default value"
               )

【问题讨论】:

    标签: hibernate jpa orm criteria


    【解决方案1】:
    Expression<String> localExp = cb.literal("My String");
    

    请查看下面的 Oracle 文档链接 http://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaBuilder.html#literal(T)

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 2020-01-18
      • 2012-01-06
      • 2018-12-05
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      • 2023-01-16
      • 1970-01-01
      相关资源
      最近更新 更多