Hi,
the problem is that you are using a bulk-update for updating a single object, that's rather counterproductive.
Bulk-updates are a very special feature and are designed to be used for large updates only.
The changes are then made directly on the database without involve hibernate's persistent context,
that means that changes are not brought back to your persistent context even if you call flush.
The standard procedure would be like following:
Code:
...
Date d = new Date();
Campaign c = (Campaign) session.get(Campaign.class, id);
c.setShown(d); // changes the Shown date in your persistent context (memory).
Assert.assertEquals(c.getShown(), d);
session.flush(); // hibernate now executes the accoding update on database
// from this moment on, also sucessive queries (where condition) in your transaction will 'see' the updated value
transaction.commit(); // normally a commit implies a implicite flush, so in most configurations the exclicite flush call above is not needed