小编Mir*_*Mir的帖子

如何在 Postgres 中搜索字符串中是否存在整个单词

我有一个表,其中有一列field具有诸如三星手机之类的值。

我的问题是,如果我搜索字符串“Samsung”或“phone”,如何获得这一行。如果我只给出“Sam”或“ph”作为搜索词,我不想要任何结果。

我曾尝试使用 ILIKE 运算符,但如果我使用:

select * 
from mytable 
where title ILIKE 'Samsung';
Run Code Online (Sandbox Code Playgroud)

它不会给出任何结果,因为它认为标题应该完全相等。另外,如果我使用title ILIKE '%Samsung%'它,它将适用于任何部分字符串。

简而言之,我希望如果输入的搜索词作为整个单词存在于我的列中,则只给出搜索结果。

另外,如果我有多个搜索词值,那么任何单词匹配都应该是结果

sql postgresql

10
推荐指数
1
解决办法
1万
查看次数

Hibernate -validator 组序列提供程序 getDefaultSequenceProvider 获取 null 作为输入

我正在使用休眠验证器组序列,并希望根据业务规则按顺序执行组。但 groupSequenceProvider 的 getValidationGroups 输入始终为 null,因此永远不会添加自定义序列。

我的请求对象:

@GroupSequenceProvider(BeanSequenceProvider.class)
public class MyBean {

    @NotEmpty
    private String name;

    @NotNull
    private MyType type;

    @NotEmpty(groups = Special.class)
    private String lastName;

    // Getters and setters        
}
Run Code Online (Sandbox Code Playgroud)

枚举类型:

public enum MyType {
    FIRST, SECOND
}
Run Code Online (Sandbox Code Playgroud)

我的自定义序列提供者:

public class BeanSequenceProvider implements DefaultGroupSequenceProvider<MyBean> {

    @Override
    public List<Class<?>> getValidationGroups(MyBean object) {

        final List<Class<?>> classes = new ArrayList<>();
        classes.add(MyBean.class);
        if (object != null && object.getType() == MyType.SECOND) {
            classes.add(Special.class);
        }
        return classes;
    }
}
Run Code Online (Sandbox Code Playgroud)

组注释:

public interface Special {
} …
Run Code Online (Sandbox Code Playgroud)

spring hibernate-validator spring-boot

5
推荐指数
1
解决办法
1414
查看次数