I don't want to discourage you in your work
Not discouraging, any discussion helps.
DTO will work, but all I wanted to do is to save an intermediate state of the object to somewhere for cancel situation which doesn't happen that often, most of the time user will do save I reckon.
So, transferring data forward and backward between DTO and DO is a kind of inefficient, besides, in my case, there won't be any interesting stuff in the DTO, it's exactly the same as DO.
Just to clarify, I'm not doing anything smart at persistent layer, none of the evict, re-attach calls, it's completely transparent.
All I do is on action layer cache the client object and then reset the names collection when cancel.