Sha256: 46742fed108d8161700e3560d930ea253d25a809895f2da58f4a120d3e74d1af
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
package <%= options[:package] %>.repositories; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.Query; public abstract class Repository<T, I extends Serializable> { protected final EntityManager entityManager; protected final Class<T> clazz; protected Repository(EntityManager entityManager) { this.entityManager = entityManager; @SuppressWarnings("unchecked") Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; this.clazz = clazz; } public void create(T entity) { entityManager.persist(entity); } public void update(T entity) { entityManager.merge(entity); } public void destroy(T entity) { entityManager.remove(entity); } public T find(I id) { return entityManager.find(clazz, id); } public List<T> findAll() { Query query = entityManager.createQuery("from " + clazz.getName()); @SuppressWarnings("unchecked") List<T> resultList = query.getResultList(); return resultList; } }
Version data entries
2 entries across 2 versions & 1 rubygems