JPA规范提供了用于此目的的API。
CriteriaBuilder.Coalesce
interfaceusedtobuildcoalesceexpressions.acoalesceexpressionis
equivalenttoacaseexpressionthatreturnsnullifallitsarguments
evaluate to null,andthevalueofitsfirstnon-null argument
操作。
从最新的休眠状态版本开始,推荐JPQL标准,而不是休眠状态固有的标准。 最终结果如下。
criteriabuilderbuilder=em.getcriteriabuilder (;
criteriaqueryquery=CB.create query (string.class );
rootuser=query.from(user.class );
criteria builder.coalescecoalesceexp=builder.coalesce (;
coalesce exp.value (user.get (' name ) );
coalesce exp.value (user.get (surname ) );
coalesceexp.value(user.get ) ' middlename ' );
query.select(coalesceexp );
queryq=em.createquery;
底线是你的使用方法
criteria builder.coalesce value (tvalue ) )。
或者
criteria builder.coalesce value (expressionextendstvalue ) )。
满足你的需求