public interface Query { // Execute a query that returns a result list List getResultList (); // Execute a query that returns a single result Object getSingleResult(); // Execute an update query int executeUpdate (); // Methods used to fetch results step by step Query setMaxResults (int maxResult); Query setFirstResult (int startPosition); // Bind a parameter in a query Query setParameter (String name, Object value); Query setParameter (String name, Date value, TemporalType temporalType); Query setParameter (String name, Calendar value, TemporalType temporalType); Query setParameter (int position, Object value); Query setParameter (int position, Date value, TemporalType temporalType); Query setParameter (int position, Calendar value, TemporalType temporalType); }