Java 创建忽略特定字符的条件
我想创建一个标准,或者对我现有的标准(我认为必须是标准)添加限制,在搜索数据时忽略“-” 例如,我正在搜索号码“888”,我也想得到“8-8-8” 我有一个包含数字字段的bean A.javaJava 创建忽略特定字符的条件,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&
@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,而是用您想要的数字构建模式。如果我正确理解了你的问题,那么这可能是一个答案。这似乎不是很有效。可能是一个虚拟列,它从数字列中删除非数字+索引。你是对的,但不幸的是,我必须努力做到这一点。我知道我可以使用正则表达式,问题是如何将它附加到标准中的字段。我不知道,抱歉。