Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.thoughtforge.dao.jpa;
- import java.lang.reflect.ParameterizedType;
- import java.util.List;
- import net.thoughtforge.dao.PersistentEntityDao;
- import net.thoughtforge.model.PersistentEntity;
- import org.springframework.orm.jpa.JpaTemplate;
- public abstract class PersistentEntityDaoImpl implements PersistentEntityDao {
- private Class entityClass;
- private JpaTemplate jpaTemplate;
- @SuppressWarnings(value="unchecked")
- public PersistentEntityDaoImpl(JpaTemplate jpaTemplate) {
- this.jpaTemplate = jpaTemplate;
- ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
- this.entityClass = (Class) genericSuperclass.getActualTypeArguments()[0];
- }
- public final Entity findByIndexId(Integer indexId) {
- return (Entity) jpaTemplate.find(entityClass, indexId);
- }
- @SuppressWarnings("unchecked")
- public final List findByNamedQuery(String queryName) {
- return (List) jpaTemplate.findByNamedQuery(queryName);
- }
- @SuppressWarnings("unchecked")
- public final List findByNamedQueryAndParams(String queryName, Object ...params) {
- return (List) jpaTemplate.findByNamedQuery(queryName, params);
- }
- public final Entity findUniqueByNamedQuery(String queryName) {
- List results = findByNamedQuery(queryName);
- if (results.isEmpty()) {
- return null;
- } else {
- return results.get(0);
- }
- }
- public final Entity findUniqueByNamedQueryAndParams(String queryName, Object ...params) {
- List results = findByNamedQueryAndParams(queryName, params);
- if (results.isEmpty()) {
- return null;
- } else {
- return results.get(0);
- }
- }
- public final Entity merge(Entity persistentEntity) {
- return (Entity) jpaTemplate.merge(persistentEntity);
- }
- public final void refresh(Entity persistentEntity) {
- jpaTemplate.refresh(persistentEntity);
- }
- public final void remove(Entity persistentEntity) {
- jpaTemplate.remove(persistentEntity);
- }
- public final void save(Entity persistentEntity) {
- jpaTemplate.persist(persistentEntity);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement