Through documentation i can find only one difference that is save method generates returns the object as generated identifier but persist does not.Is it the only purpose for providing persist method.If yes how does it help it to programmer becuase even if he does not intend to use generated identifier he can use save and ignore the return value. 

Also came thru this thread at [What's the advantage of persist() vs save() in Hibernate?](https://stackoverflow.com/questions/5862680/whats-the-advantage-of-persist-vs-save-in-hibernate). The meaningful statement i can get from this thread is **persist() also guarantees that it will not execute an INSERT statement if it is called outside of transaction boundaries which save method does** but not sure how should i try it in my programme so that i can get actual difference?