Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建忽略特定字符的条件_Java_Hibernate_Hibernate Criteria - Fatal编程技术网

Java 创建忽略特定字符的条件

Java 创建忽略特定字符的条件,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,我想创建一个标准,或者对我现有的标准(我认为必须是标准)添加限制,在搜索数据时忽略“-” 例如,我正在搜索号码“888”,我也想得到“8-8-8” 我有一个包含数字字段的bean A.java @Data public class A { [...] @Length(max = 16) @Column(length = 16) private String number; } 这是我的标准 public Pair<Long, List<A&

我想创建一个标准,或者对我现有的标准(我认为必须是标准)添加限制,在搜索数据时忽略“-”

例如,我正在搜索号码“888”,我也想得到“8-8-8”

我有一个包含数字字段的bean

A.java

@Data
public class A {
    [...]
    @Length(max = 16)
    @Column(length = 16)
    private String number; 
}
这是我的标准

    public Pair<Long, List<A>> filter(CompoundFilter filter, CompoundSort sort, int start, int count) {
        Criteria criteria = getSession().createCriteria(A.class, "a_alias");
...
}
公共对筛选器(复合筛选器筛选器、复合排序、int开始、int计数){
Criteria=getSession().createCriteria(A.class,“A_别名”);
...
}
我应该在标准中添加什么来实现我的目标


我的另一个想法是创建一些隐藏字段(我说的隐藏字段是指我不会在UI上使用的字段,只填充数据),它将保存“转换”的值,当过滤
数字时,我将在这个字段上过滤尝试使用
正则表达式
,模式看起来像
“[0-9]-[0-9]-…[0-9]”
,这里不是0-9,而是用您想要的数字构建模式。如果我正确理解了你的问题,那么这可能是一个答案。

这似乎不是很有效。可能是一个虚拟列,它从数字列中删除非数字+索引。你是对的,但不幸的是,我必须努力做到这一点。我知道我可以使用正则表达式,问题是如何将它附加到标准中的字段。我不知道,抱歉。