As long as the domain object loaded in your first get, is not disconnected from the hibernate session, you'll get the exact same object in the collection loaded in your second get.
Meaning you don't need a refresh at all, there is only 1 object.
Simple junit test that illustrates this:
Code:
Payment payment = getPaymentPersistent();
//run on empty database, so the only persistent object is the one from the last line
Payment payment2 = paymentDao.getAll().get( 0 );
String name = payment.getName();
payment.setName( name + "notsame" );
paymentDao.update( payment );
paymentDao.refresh( payment ); //flush + refresh
assertNotSame( name, payment.getName() );
assertSame( payment.getName(), payment2.getName() );
Maybe this helps you...