Sha256: 542d45f060594f8b86fdf9aaa06975ddc5a3ef3bd86ef3726b4ed6666a870084
Contents?: true
Size: 1.1 KB
Versions: 6
Compression:
Stored size: 1.1 KB
Contents
package <%= options[:package] %>.<%= options[:repositories_package] %>; import java.io.Serializable; import java.lang.reflect.ParameterizedType; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; public abstract class Repository<T, I extends Serializable> { protected final Session session; protected final Class<T> clazz; protected Repository(Session session) { this.session = session; @SuppressWarnings("unchecked") Class<T> clazz = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; this.clazz = clazz; } public void create(T entity) { session.persist(entity); } @SuppressWarnings("unchecked") public T update(T entity) { return (T) session.merge(entity); } public void destroy(T entity) { session.delete(entity); } @SuppressWarnings("unchecked") public T find(I id) { return (T) session.get(clazz, id); } public List<T> findAll() { Query query = session.createQuery("from " + clazz.getName()); @SuppressWarnings("unchecked") List<T> resultList = query.list(); return resultList; } }
Version data entries
6 entries across 6 versions & 2 rubygems