persistence@glassfish.java.net

General Entity Facade

From: Kem Elbrader <kem.elbrader_at_gmail.com>
Date: Sat, 7 Jul 2007 00:55:48 -0600

What do you think of the following EJB inspired by the facade
generation in Netbeans?
Any criticisms? Any improvements?

public interface EntityOperations {
    void persist(Object entity);
    <T> T merge(T entity);
    void destroy(Object entity);
    <T> T find(Class<T> entClass, Object key);
    <T> Collection<T> findAll(Class<T> entClass);
}

@Stateless
public class EntityOperationsBean implements EntityOperations {
    @PersistenceContext EntityManager em;

    void persist(Object entity) { em.persist(entity); }
    <T> T merge(T entity) { return em.merge(entity); }
    void destroy(Object entity) { em.remove(merge(entity)); }
    <T> T find(Class<T> entClass, Object key) { return em.find(entClass, key); }
    <T> Collection<T> findAll(Class<T> entClass) {
        String sql = "SELECT o FROM "+entClass.getSimpleName()+" AS o";
        return em.createQuery(sql).getResultList();
    }
}