I found my answer here. It turns out that the controller ends its Hibernate session when it calls the service persisting the data. If I do the following...
domainObj.discard()
message = service.updateExisting(domainObj, un, other)
This was a little counter-intuitive for me because I thought the discard would discard the changes as well but that doesn't seem to be the case. I then call the .save() in the service and everything persists as expected. Thanks to everyone for trying to help out.