Petar Tahchiev Nayden Gochev Yoana Ivanova The @Filter uses an SQL clause, not a JPQL one which gets parsed and where type transformations get applied. However, have you tried using a Filter parameter instead?
@FilterDef(name="activeAccount", parameters=@ParamDef( name="active", type="boolean" ) )
@Filter(name = "active_filter", condition = "(({alias}.active IS NULL OR {alias}.active = :active) OR (CURRENT_TIMESTAMP BETWEEN {alias}.active_from AND {alias}.active_to))", deduceAliasInjectionPoints = false)
And, of course, providing it before running the query:
entityManager
.unwrap( Session.class )
.enableFilter( "activeAccount" )
.setParameter( "active", true);
I haven't tested it, but you could give it a try. If that does not work, then, in the true spirit of open-source software, you could send me a Pull Request with a fix. |