- Legacy support for systems that are unable to match
ListingParamters.addFilterAttributes(String, Object)
anymore. - Happy 1st Birthday Simon! 🥳
ListingParameters.addFilterAttributes()
isn't limited toString
anymore. So you don't have to stringify numeric or enum values anymore.
- Visual table summary? Want to know what's the most of something? No problem! You can acquire terms and statistics by just throwing attribute names into filter! Have a look at Visual Table Summary in this UX Collective article.
- Fetch size optimization can be applied by
ListingConfig.FETCHSIZE
, witch will addtypedQuery.setHint("org.hibernate.fetchSize", ListingConfig.FETCHSIZE);
to the query if set. - Convenient new
ListingParameters
constructors with parameterspage
&limit
and onlylimit
- New filter operator AND ('&')
- Ever wondered what German city has double A and double L in its name? Attribute:
city
Filter:aa&ll
- it's Halle an der Saale - Lets see, what Eike did in December 2018! Attribute:
createdBy|createdAt
Filter:Eike AND 12.2018
- Ever wondered what German city has double A and double L in its name? Attribute:
- Date filter values accept any character now, not only dots, e.g.
04-10-1983
- Date filter values accept now also two digit years, e.g.
04-10-83
- Date type now accepts current milliseconds as filter values
@ListingLikeOnNumber
got replaced by@ListingFilterAsString
and is no more
- Made date filter pattern
MM.YYYY
work
- Collection fields are now accessible if annotated with
@ListingLikeOnNumber
. This only makes sense, if the database field can be string represented!
@ListingFilterAsString
replaced now deprecated@ListingLikeOnNumber
. This new annotation will cast any type to string to match a filter.- Configurable boolean values
ListingConfig.BOOLEAN_TRUE
andListingConfig.BOOLEAN_FALSE
to customize the filter. - New
ListingConfig.URI_DECODE
flag decides if string values that are provided by the URL (sortAttribute
,filter
,filterAttributes
) gets URI decoded (Default:false
).
- To avoid a limitation of the result list you can now set the limit to zero:
listingParameters.setLimit(0)
;
- Keywords like
AND
,LIKE
,NOT
, etc gets escaped before being used in regular expressions. So there is more possibilities when using custom keywords. - Using a page number without limit doesn't start at the first element of the total result list anymore
- URI character encoding configurable (default is UTF8)
- It is now possible to send FilterAttributes as Uri Encoded String
- IllegalStateException ("Duplicate key...") in ListingQuery.addToWhereConstraint() fixed
- Ascending indicator "+" is removed by URL, so the sort attribute needed to get trimmed
- Multiple sort attributes when using semicolon as separator
- Removed useless but problematic null condition in
ListingParameters.getLimit()
- Removed rebel nature
- Removed silly sort from count statement (only MySQL was able to proceed with this bug)
- LIKE statements are now always compared by both sides in lower case
- NOT-condition back for duty
- Since
@Id
marked attributes are also columns, they will be not longer ignored byfilterAllAttributes()
- Design related problems in case limit = 0
- New supported types: Float & Double
- New operators LT, GT, TO & LIKE ('<', '>', '-' & '~') for the usage at numerical fields
- Sort direction indicators configurable:
ListingConfig.SORT_ASC
&ListingConfig.SORT_DESC
- Wildcards in LIKE statements ('*' '?') configurable:
ListingConfig.WILDCARD_MANY
&ListingConfig.WILDCARD_ONE
- Configuration key
ListingConfig.OR_TO_IN_LIMIT
"coodoo.listing.or.to.in.limit" reduced toListingConfig.OR_LIMIT
"coodoo.listing.or.limit"
- Reducing the page number in case less results are found to prevent empty pages
- Attribute order swaped in ListingResult class so the meta data appear first (e.g. in Rest response) to simplify debugging
- CDI producer
@ListingEntityManager
removed ListingService
removed (useListing
class with static method and pass the entity manager)
- Central
Listing
class with static method - No EJB components anymore, just plain CDI
- Configuration via properties file (coodoo.listing.properties)
- Configuration static loader
- Limitless results if limit is set to 0
- Renamed the project/Maven artifactId from "listing" to "coodoo-listing"
- Renamed
ListingQueryParams
toListingParameters
- To provide the EntityManager you have to implement a
@ListingEntityManager
CDI producer
- Multi column filter via pipe restored (go broken in 1.2.1)
- Clean ups and refactoring
- Custom predicate tree with builder pattern style constructors
- Additional custom predicates for the filter query
- Preventing stack overflow if there are to many disjunction in an filter value
- Empty attribute filter
Initial release:
- Listing service
- Listing model
- Listing criteria builder
- Listing entity annotations