I use merge() and then the new object's ID is updated in the reference when it's created. So you can just return the TV (or the id) after it's merged.
Code:
IE:
public TV storeTV(TV tv) {
sessionFactory.getCurrentSession().merge(tv);
return tv;
}
Keep in mind if you are using spring like me, I saw this note in the petclinic example:
// Note: Hibernate3's merge operation does not reassociate the object
// with the current Hibernate Session. Instead, it will always copy the
// state over to a registered representation of the entity. In case of a
// new entity, it will register a copy as well, but will not update the
// id of the passed-in object. To still update the ids of the original
// objects too, we need to register Spring's
// IdTransferringMergeEventListener on our SessionFactory.
Hope that helps.