如何将默认值发送到基于CriteriaBuilder构造函数的选择字段?

时间:2017-09-05 11:50:52

标签: hibernate jpa orm criteria

我正在使用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"
               )

1 个答案:

答案 0 :(得分:1)

Expression<String> localExp = cb.literal("My String");

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