Agreed.
This is how transactional services work, yes. Of course, you can explicitly start a transaction before the service method is called, in which case the service method joins that transaction by default. Another subtlety, but probably not relevant here.
I'm not sure this is the case. No guarantees are made about when those changes will be flushed to the database other than they will be flushed no later than when the transaction is committed. But it's generally a Bad Idea to make changes before or after a transaction, particularly before.
Unless you explicitly flush the session, this is correct. Remember that you can force a flush at any time.



Reply With Quote