Problema/duvida ao persistir

Olá Pessoal,

Gostaria de opniões sobre esse modelo que fiz, deixar um DAO geral para salvar e excluir
objetos e saber se seria muito incorreto deixar EntittyManager* como public…

public class PersistenceDAO {

public  EntityManagerFactory emf;
public  EntityManager em;

public PersistenceDAO(){

    emf = Persistence.createEntityManagerFactory("PhenixPU");
    em = emf.createEntityManager();
}

public T Salvar(T obj){
    try{
        em.getTransaction().begin();
        obj = em.merge(obj);
        em.getTransaction().commit();
    }catch(Exception e){
        obj=null;
    }
    return obj;
}

}

package br.com.wafs.phenix.conta.persistencia;

import br.com.wafs.phenix.dao.PersistenceDAO;
import java.util.Collection;

public class ContaDAO extends PersistenceDAO{

public Collection<Conta> Listar(){
    return em.createNamedQuery("Conta.findAll").getResultList();
}

}

E falando em persistencia…
Como faço pra salvar um objeto q tem relação muitos para um.
Ex. Contato -> Tipo De contato.

Grato,

da uma olhda em

http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/