ORM 'Navigation' is your friend

Don't be tempted to hand-write queries that are equivalent to navigations between entities:

         BatchControlId batchControlId = ...
         Query<BatchControlParameter> query = createQuery("from BatchControlParameter parm where parm.id.batchControlId = :parentId");
         query.bindId("parentId", batchControlId);
         List<BatchControlParameter> list = query.list();
      

DO: Use this instead - it'll use the cache and will almost certainly be faster:

         BatchControl batchControl = id.getEntity(); 
         if (batchControl == null) { /* oh oh */ }
         BatchControlParameters list = batchControl.getParameters();