属性忽略 
Bean Searcher 中共有四种方法可以忽略实体类中的某个属性。
修饰符 static 与 transient 
被关键字 static 或 transient 修饰的属性会被自动忽略,例如:
java
public class Address {
    public static String SUZHOU = "苏州市"; // 自动忽略
    private String city;    // 不会忽略
    private String street;  // 不会忽略
    private transient fullAddress;          // 自动忽略
    // Getter Setter ...
}@DbIgnore 忽略单个字段 
Bean Searcher 自 v3.0.0 新增了 @DbIgnore 注解,我们可以直接用它来标记实体类中的某个属性,从而忽略它参与数据库映射。
注意
该注解不可以与 @DbField 注解使用在同一个属性上。
@SearchBean.ignoreFields 忽略多个字段 
Bean Searcher 自 v3.4.0 为注解 @SearchBean 新增了 ignoreFields 参数,我们可以设定它的值来忽略这个实体类中的多个属性。
java
@SearchBean(
    ignoreFields = {"field1", "field2"}
)
public class User extends BaseEntity {
    // ...
}既然可以用 @DbIgnore 直接忽略指定字段,为什么还需要 @SearchBean.ignoreFields 呢?
- 原因一:在某些框架中,可能会在运行时对实体类动态添加某些字段,对于这些在运行时动态添加上去的字段,我们无法给它标记 @DbIgnore注解
- 原因二:有时候要忽略的属性在父类中,但这个属性在其它的子实体类中又不能被忽略
全局属性忽略 
Bean Searcher 自 v3.4.0 开始支持全局属性忽略某些未被 @DbField 注解的属性。
SpringBoot / Grails 
使用 bean-searcher-boot-starter 依赖时,可通过以下键名配置:
| 配置键名 | 含义 | 可选值 | 默认值 | 
|---|---|---|---|
| bean-searcher.sql.default-mapping.ignore-fields | 需要全局忽略的属性名(可指定多个) | 字符串数组 | null | 
非 Boot 的 Spring 项目 
xml
<bean id="dbMapping" class="cn.zhxu.bs.implement.DefaultDbMapping">
    <property name="ignoreFields"> 
        <!-- 这里配置需要全局忽略的属性名 -->
        <array>
            <value>field1</value>
            <value>field2</value>
        </array>
    </property>
</bean>
<bean id="metaResolver" class="cn.zhxu.bs.implement.DefaultMetaResolver">
    <property name="dbMapping" ref="dbMapping" />
</bean>
<bean id="mapSearcher" class="cn.zhxu.bs.implement.DefaultMapSearcher">
    <!-- 省略其它属性配置,BeanSearcher 检索器也同此配置 -->
    <property name="metaResolver" ref="metaResolver" />
</bean>其它框架 
java
DefaultDbMapping dbMapping = new DefaultDbMapping();
dbMapping.setIgnoreFields(new String[] { "field1", "field2" }); // 这里配置需要全局忽略的属性名
MapSearcher mapSearcher = SearcherBuilder.mapSearcher()
        // 省略其它配置
        .metaResolver(new DefaultMetaResolver(dbMapping))       // BeanSearcher 检索器也同此配置
        .build();