That’s an awesome solution you created there Andrew, works like a charm. Thanks yet again!
Happy little counting method -> https://gist.github.com/hugith/8a21aa4247385732a4ce Cheers, - hugi > On 12. ágú. 2015, at 09:20, Andrew Lindesay <a...@lindesay.co.nz> wrote: > > Hi Hugi; > > You can use EJBQL queries with timestamps, but there is presently no > supported _literal_ representation for a timestamp inside the query string so > you have to use parameters instead. Here is an example; > > EJBQLQuery q = new EJBQLQuery(String.format( > "DELETE FROM %s r WHERE r.createTimestamp < :expiryTimestamp", > Response.class.getSimpleName())); > > q.setParameter("expiryTimestamp", > new Timestamp(System.currentTimeMillis() - > TimeUnit.SECONDS.toMillis(expirySeconds))); > > getServerRuntime().getContext().performQuery(q); > > To help with getting Expression objects to over to EJBQL with timestamp > literals; > > Expression#toEJBQL(List<Object> parameterAccumulator, String rootId) > > So you call that and as it creates the EJBQL fragment, it will insert any > necessary parameters into the parameterAccumulator for you all set to go into > the EJBQLQuery. > > Hopefully that helps? > > cheers. > > [1] > https://github.com/aplgithub/haikudepotserver/blob/master/haikudepotserver-webapp/src/main/java/org/haikuos/haikudepotserver/captcha/DatabaseCaptchaRepository.java > > > For example; > > SELECT f FROM Foo f WHERE f.createTimestamp > ? > > Then you just need to use the > > > On 12/08/15 20:35, Hugi Thordarson wrote: >> Hi Andrew, >> thanks for that. I see what the problem is. >> But if I can’t use EJBQL when generating queries that use dates, can I go >> down any different paths or do I have to revert to writing plain old SQL? > > -- > Andrew Lindesay