Running this basic JUnit
Code:
@TransactionConfiguration( transactionManager = "transactionManager", defaultRollback = false )
@Transactional( propagation = Propagation.REQUIRED )
public class DesignationTest extends AbstractTest
{
    @Resource
    private GenericDAO<Designation, Integer> designationDAO;
    @Test
    public void getDesignations()
    {
        List<Designation> list = designationDAO.findAll( 1, 5 );
        for( Designation desig : list )
        {
            System.out.println( "Id: "
                + desig.getId()
                + " : Code: "
                + desig.getDesignationCode()
                + " : Description :"
                + desig.getDesignationDescription()  );
        }
    }
}
I end up with logs showing
...SELECT ... FROM T_DESIG....
then immediately after the System.out logging , I get
update T_DESIG ... 
How can it be dirty when it's a basic Spring @Transaction managed query?  This has got to be something simple?
(It does this in my server as well, so it's not JUnit)