See this question.
It turns out that even without committing the transaction manually, before the TX is committed, the person has an ID after calling the save() meth
as i know, we can't get the object's id (assume it's a auto-numbered) before it's persisted. and i personally think that it's quite dangerous to assign something which should be done by RDBMS outside it.