Skip to main content

How could I be so stupid using hibernate criteria with timestamp?

I needed to make a query to find all records valid today for columns with effectiveFrom and effectiveTo range
I spent a couple of hours trying to understand why

            criteria.add(Restrictions.ge("effectiveFrom",currentDate.getTime()));
            criteria.add(Restrictions.le("effectiveTo",currentDate.getTime()));

was giving no results.

After many trials and attempts with other criteria tricks, I remembered that hibernate is not comparting if  currentDate.getTime is greater than effectiveFrom, but if effectiveFrom is greater than currentDate.getTime
So correct sintax for it was the exact opposite

            criteria.add(Restrictions.le("effectiveFrom",currentDate.getTime()));
            criteria.add(Restrictions.ge("effectiveTo",currentDate.getTime()));

This one worked as it should 

Comments

Popular posts from this blog

Multiple controllers with Spring Boot

Remember, when you want to have multiple controllers with Spring Boot, you should always name them differently in the annotation, otherwise they will not work So these two together will NOT work (or just one of them will work) These two instead WILL work.

When adding a property to graph-tool don't forget this

When you are adding a new property to a graph-tool graph (https://graph-tool.skewed.de/) is_node_customer = network.new_vertex_property("bool") weight = network.new_edge_property("float")  you should never forget to add this network.vertex_properties["is_node_customer"] = is_node_customer network.edge_properties["weight"] = weight Otherwise the properties will not saved or stored together with the graph and you will lose a lot of time