Skip to content

Commit

Permalink
Merge branch 'master' of github.com:forge/core
Browse files Browse the repository at this point in the history
  • Loading branch information
lincolnthree committed Aug 29, 2011
2 parents a59b290 + 4482fec commit 5b1ccbc
Showing 1 changed file with 41 additions and 24 deletions.
Expand Up @@ -22,23 +22,26 @@ public class PersistenceUtil implements Serializable

public <T> int count(Class<T> type)
{
CriteriaQuery<Long> cq = getEntityManager().getCriteriaBuilder().createQuery(Long.class);
EntityManager em = getEntityManager();
CriteriaQuery<Long> cq = em.getCriteriaBuilder().createQuery(Long.class);
javax.persistence.criteria.Root<T> rt = cq.from(type);
cq.select(getEntityManager().getCriteriaBuilder().count(rt));
javax.persistence.Query q = getEntityManager().createQuery(cq);
cq.select(em.getCriteriaBuilder().count(rt));
javax.persistence.Query q = em.createQuery(cq);
return ((Long) q.getSingleResult()).intValue();
}

protected <T> void create(final T entity)
{
getEntityManager().joinTransaction();
getEntityManager().persist(entity);
EntityManager em = getEntityManager();
em.joinTransaction();
em.persist(entity);
}

protected <T> void delete(final T entity) throws NoResultException
{
getEntityManager().joinTransaction();
getEntityManager().remove(entity);
EntityManager em = getEntityManager();
em.joinTransaction();
em.remove(entity);
}

protected <T> T deleteById(final Class<T> type, final Long id) throws NoResultException
Expand All @@ -50,17 +53,19 @@ protected <T> T deleteById(final Class<T> type, final Long id) throws NoResultEx

protected <T> List<T> findAll(final Class<T> type)
{
CriteriaQuery<T> query = getEntityManager().getCriteriaBuilder().createQuery(type);
EntityManager em = getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(type);
query.from(type);
return getEntityManager().createQuery(query).getResultList();
return em.createQuery(query).getResultList();
}

@SuppressWarnings("unchecked")
public <T> List<T> findAll(Class<T> type, int firstResult, int maxResults)
{
CriteriaQuery<T> cq = getEntityManager().getCriteriaBuilder().createQuery(type);
EntityManager em = getEntityManager();
CriteriaQuery<T> cq = em.getCriteriaBuilder().createQuery(type);
cq.select(cq.from(type));
javax.persistence.Query q = getEntityManager().createQuery(cq);
javax.persistence.Query q = em.createQuery(cq);
q.setMaxResults(maxResults);
q.setFirstResult(firstResult);
return q.getResultList();
Expand All @@ -70,8 +75,10 @@ public <T> List<T> findAll(Class<T> type, int firstResult, int maxResults)
protected <T> T findById(final Class<T> type, final Long id) throws NoResultException
{
Class<?> clazz = getObjectClass(type);
T result = (T) getEntityManager().find(clazz, id);
if (result == null) {
EntityManager em = getEntityManager();
T result = (T) em.find(clazz, id);
if (result == null)
{
throw new NoResultException("No object of type: " + type + " with ID: " + id);
}
return result;
Expand All @@ -80,15 +87,18 @@ protected <T> T findById(final Class<T> type, final Long id) throws NoResultExce
@SuppressWarnings("unchecked")
protected <T> List<T> findByNamedQuery(final String namedQueryName)
{
return getEntityManager().createNamedQuery(namedQueryName).getResultList();
EntityManager em = getEntityManager();
return em.createNamedQuery(namedQueryName).getResultList();
}

@SuppressWarnings("unchecked")
protected <T> List<T> findByNamedQuery(final String namedQueryName, final Object... params)
{
Query query = getEntityManager().createNamedQuery(namedQueryName);
EntityManager em = getEntityManager();
Query query = em.createNamedQuery(namedQueryName);
int i = 1;
for (Object p : params) {
for (Object p : params)
{
query.setParameter(i++, p);
}
return query.getResultList();
Expand All @@ -97,15 +107,18 @@ protected <T> List<T> findByNamedQuery(final String namedQueryName, final Object
@SuppressWarnings("unchecked")
protected <T> T findUniqueByNamedQuery(final String namedQueryName) throws NoResultException
{
return (T) getEntityManager().createNamedQuery(namedQueryName).getSingleResult();
EntityManager em = getEntityManager();
return (T) em.createNamedQuery(namedQueryName).getSingleResult();
}

@SuppressWarnings("unchecked")
protected <T> T findUniqueByNamedQuery(final String namedQueryName, final Object... params) throws NoResultException
{
Query query = getEntityManager().createNamedQuery(namedQueryName);
EntityManager em = getEntityManager();
Query query = em.createNamedQuery(namedQueryName);
int i = 1;
for (Object p : params) {
for (Object p : params)
{
query.setParameter(i++, p);
}
return (T) query.getSingleResult();
Expand All @@ -119,13 +132,16 @@ protected EntityManager getEntityManager()
protected Class<?> getObjectClass(final Object type) throws IllegalArgumentException
{
Class<?> clazz = null;
if (type == null) {
if (type == null)
{
throw new IllegalArgumentException("Null has no type. You must pass an Object");
}
else if (type instanceof Class<?>) {
else if (type instanceof Class<?>)
{
clazz = (Class<?>) type;
}
else {
else
{
clazz = type.getClass();
}
return clazz;
Expand All @@ -138,7 +154,8 @@ protected <T> void refresh(final T entity)

protected <T> void save(final T entity)
{
getEntityManager().joinTransaction();
getEntityManager().merge(entity);
EntityManager em = getEntityManager();
em.joinTransaction();
em.merge(entity);
}
}

0 comments on commit 5b1ccbc

Please sign in to comment.