Merge != update
persist could avoid some extra Select to detect whether the object is in DB or not
If it is just a matter of saving some overhead, then it seems that it would be good practice to use merge instead of persist whenever a new entity could possibly contain a detached entity (because in this case if you use persist, an exception is thrown).
Any thoughts on this?
some people does not consider it as a small overhead, but yes in not critical path, you can use it.