与这个问题类似,我想使用我自己的用户定义类型“Account tNumber”执行一个SQL“like”操作。
QueryDSL实体类(定义列的字段)如下所示:
public final SimplePath<com.myorg.types.AccountNumber> accountNumber;
我尝试了以下代码来实现SQL中的“like”操作,但是在运行查询之前比较类型时出现错误:
final Path path=QBusinessEvent.businessEvent.accountNumber;
final Expression<AccountNumber> constant = Expressions.constant(AccountNumber.valueOfWithWildcard(pRegion.toString()));
final BooleanExpression booleanOperation = Expressions.booleanOperation(Ops.STARTS_WITH, path, constant);
expressionBuilder.and(booleanOperation);
错误为:
org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [7!%%] did not match expected type [com.myorg.types.AccountNumber (n/a)]
有人曾经使用QueryDSL/JPA组合实现过这一点吗?
似乎存在bug/歧义。在我的例子中,我需要按不同类型的两个字段进行搜索(String
,Number
SELECT * FROM table AS t WHERE t.name = "%some%" OR t.id = "%some%";
我的代码如下:
BooleanBuilder where = _getDefaultPredicateBuilder();
BooleanBuilder whereLike = new BooleanBuilder();
for(String likeField: _likeFields){
whereLike = whereLike.or(_pathBuilder.getString(likeField).contains(likeValue));
}
where.and(whereLike);
如果第一个
_likeFields
是String
-请求工作正常,否则会抛出Exception。
您是否尝试使用String常量来代替?
Path<?> path = QBusinessEvent.businessEvent.accountNumber;
Expression<String> constant = Expressions.constant(pRegion.toString());
Predicate predicate = Expressions.predicate(Ops.STARTS_WITH, path, constant);
最后,我的同事给了我一个提示,让我做以下事情:
if (pRegion != null) {
expressionBuilder.and(Expressions.booleanTemplate("{0} like concat({1}, '%')", qBusinessEvent.accountNumber, pRegion));
}
这似乎很管用!
我想将下面的结构存储在Hazelcast缓存中。(结构仍未定稿) value1/唯一键{ 例如,搜索查询数据->{“isin”:“isin222”和“issue_cntry”:“uk”},应该从value2返回所有数据集。{“sedol”:“sedol123”或“id_bb_global”:“bbg12345676”}应从值1返回所有数据集 问题: 在Hazelcast中存储这种数据结构的最佳方法
当我使用以下HQL时,我得到了DML操作不支持的错误
我想让ElasticSearch在我的盒子上工作。我有以下映射: 所以我有一个“运动鞋”索引,它有一个“运动鞋”类型,一个“品牌”属性,它有一个“ID”和一个“标题”。 检查运动鞋是否存在,运行curl-xget“http://localhost:9200/sneakers/sneaker/1?prettley”,我得到: 现在,runningcurl-xget'http://localhost:
主要内容:匹配所有查询,全文查询,匹配查询,multi_match查询,查询字符串查询,期限等级查询,范围查询,复合查询,连接查询,地理查询在Elasticsearch中,通过使用基于JSON的查询进行搜索。 查询由两个子句组成 - 叶查询子句 - 这些子句是匹配,项或范围的,它们在特定字段中查找特定值。 复合查询子句 - 这些查询是叶查询子句和其他复合查询的组合,用于提取所需的信息。 Elasticsearch支持大量查询。 查询从查询关键字开始,然后以对象的形式在其中包含条件和过滤器。以下描
主要内容:创建一个添加查询在MS Access和其他DBMS系统中,查询可以做的不仅仅是显示数据,它们实际上可以对数据库中的数据执行各种操作。 操作查询是一次可以添加,更改或删除多个记录的查询。 添加的好处是,可以在运行之前在Access中预览查询结果。 Microsoft Access提供了种不同类型的操作查询 - 附加 更新 删除 生成表 操作查询不能撤消。应该考虑使用更新查询来对要更新的表进行备份。 创建一个添加查询
本文向大家介绍Java使用Jdbc连接Oracle执行简单查询操作示例,包括了Java使用Jdbc连接Oracle执行简单查询操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java使用Jdbc连接Oracle执行简单查询操作。分享给大家供大家参考,具体如下: Java Jdbc 连接 Oracle 执行简单查询示例: 也可以使用防止SQL注入PreparedStatement方法