Twój kod działa zgodnie z oczekiwaniami. Po zaimplementowaniu Persistable widać, że @CreatedDate adnotacja działa.
Upewnij się, że createdDate jest null przy drugim wywołaniu save ponieważ obiekt już istnieje w bazie danych i zaktualizowałeś go za pomocą createdDate = null . Jak widać z dokumentacji dla @CreatedDate :
Więc nie nadpisywać swojej createdDate z null przy drugim wywołaniu powinieneś pobrać klienta z bazy danych za pomocą c = repository.findOne("test_id"); a następnie zaktualizować.