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

问题描述:

我正在使用JPA CriteriaBuilder创建查询并使用构造函数库选择。但在我的情况下,我想要一些默认值到特定参数(虚拟)。但该参数不是表格列。如何将默认值发送到基于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" 
       ) 

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

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