@Override public MainOrder findOrder(String authorising) { return mainOrderRepository.findOne((root, query, cb) -> cb.and( cb.equal(root.get("payOrder").type(), TRJPayOrder.class) , cb.equal(cb.treat(root.join("payOrder"), TRJPayOrder.class).get("authorisingInfo").get("id") , authorising) )); }