There is one style that has "business objects" able to store themselves. So your "unit of work" controller might say:
Customer class might have a method:
Note that the Customer is not bound to a particular persistor. The factory might look up the Customer class in configuration and get a database persistor or a JMS persistor or something else. That method is so generic it could be in a base class PersistableBusinessObject or something.
Another style is to have persistence separate from the domain objects. Now the controller might say:
Hmmm, the factory and ht actual persistor didn't change one bit. The business object now knows nothing about persistors at all, so we don't need that clumsy base class. I lean toward this style.
Read up on how serious frameworks do this, say Spring and Hibernate. They'll be a lot more sophisticated than my quick examples. And using one would probably be a lot better choice than writing your own.