Din kode fungerer som forventet. Når du har implementeret Persistable du kan se den @CreatedDate annoteringen virker.
Sikker på, at createdDate er null ved det andet kald af save fordi objektet allerede eksisterer i databasen, og du har opdateret det med createdDate = null . Som du kan se i dokumentationen til @CreatedDate :
Så for ikke at overskrive din createdDate med null ved det andet opkald skal du hente din kunde fra databasen med c = repository.findOne("test_id"); og derefter opdatere det.