JPA 条件查询:如何 select multiSelect 的默认值
JPA Criteria Query: How to select default value for multiSelect
我有一个 class 有 11 个字段用于 multiSelect 查询。
我的问题是,目前我有 10 个字段的数据。其中之一是null
,以后会用到。
query.multiselect(
selection1,
selection2,
...
selection10
)
因此,我创建了包含 10 个字段的新构造函数,但由于参数过多,代码有异味。我认为如果我的多选看起来像更好:
query.multiselect(
selection1,
selection2,
...
selection10,
selection11 // this should return default null value
)
我该怎么做?
CriteriaQuery.multiselect takes a list of Selection objects. The Selection
interface is extended by Expression, and you can use CriteriaBuilder.literal to create a constant expression. Or CriteriaBuilder.nullLiteral 对于您想要常量 null
的情况。所以我会尝试:
query.multiselect(
selection1,
selection2,
...
selection10,
criteriaBuilder.nullLiteral(String.class) // use the class of the value that
// will be selected in the future
)
我有一个 class 有 11 个字段用于 multiSelect 查询。
我的问题是,目前我有 10 个字段的数据。其中之一是null
,以后会用到。
query.multiselect(
selection1,
selection2,
...
selection10
)
因此,我创建了包含 10 个字段的新构造函数,但由于参数过多,代码有异味。我认为如果我的多选看起来像更好:
query.multiselect(
selection1,
selection2,
...
selection10,
selection11 // this should return default null value
)
我该怎么做?
CriteriaQuery.multiselect takes a list of Selection objects. The Selection
interface is extended by Expression, and you can use CriteriaBuilder.literal to create a constant expression. Or CriteriaBuilder.nullLiteral 对于您想要常量 null
的情况。所以我会尝试:
query.multiselect(
selection1,
selection2,
...
selection10,
criteriaBuilder.nullLiteral(String.class) // use the class of the value that
// will be selected in the future
)