public void testUpdateUser() throws Exception { User user = dao.get(1L); Address address = user.getAddress(); address.setAddress1("new address"); user.setTimeZone("US/Central"); dao.saveUser(user); user = dao.get(1L); assertEquals(address, user.getAddress()); assertEquals("new address", user.getAddress().getAddress1()); assertEquals("US/Central", user.getTimeZone()); // verify that violation occurs when adding new user with same username user.setId(null); endTransaction(); try { dao.saveUser(user); // flush(); fail("saveUser didn't throw DataIntegrityViolationException"); } catch (DataIntegrityViolationException e) { assertNotNull(e); log.debug("expected exception: " + e.getMessage()); } }