Skip to content

Column Filters

Squizy provides per-column filtering for every entity table. Filters are type-aware and can be combined to create complex queries.

How It Works

Each column in the entity table can be filtered individually. The available filter operators depend on the field type:

String Fields

OperatorDescription
LIKEContains the value (case-insensitive)
EQExact match
NENot equal

Numeric Fields

OperatorDescription
EQEquals
NENot equals
GTGreater than
GEGreater than or equal
LTLess than
LELess than or equal

Enum Fields

OperatorDescription
EQEquals selected value
NENot equal to selected value
INIn list of selected values

Relationship Fields

OperatorDescription
EQMatches the selected related entity
INMatches any of the selected related entities

Date/Time Fields

OperatorDescription
EQExact date match
GTAfter date
GEOn or after date
LTBefore date
LEOn or before date

Combining Filters

Multiple column filters are combined with AND logic — all filters must match for a record to be included in the results.

Programmatic Filtering

Filters can be applied programmatically via the query API:

http
POST /api/product/query
Content-Type: application/json

{
  "queryCriteriaList": [
    {
      "key": "status",
      "value": "IN_STOCK",
      "operation": "EQ"
    },
    {
      "key": "price",
      "value": "100",
      "operation": "GE"
    }
  ]
}

Controlling Filterability

Use @SquizyField to control whether a field appears in filter options:

java
@SquizyField(filterable = FilterableMode.NOT_FILTERABLE)
@OneToMany
private List<Account> accounts;

Values: DEFAULT (framework decides), FILTERABLE, NOT_FILTERABLE.