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();