[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] org.hibernate.criterion.Example equivalent in Eclipselink
|
Here are some snippets that might be useful to you, good luck on your quest!
Templated selectAll:
public <T> List<T> selectAll(Class<T> clazz, String orderClause) {
if (orderClause.contains(",")) {
orderClause = orderClause.replaceAll("\\s", "");
String[] orderbys = orderClause.split(",");
orderClause = "";
for (int i=0;i<orderbys.length;i++) {
orderClause += "em." + orderbys[i];
if (i < orderbys.length - 1)
orderClause += ", ";
}
} else {
orderClause = "em." + orderClause;
}
Query query = getEntityManager().createQuery("SELECT em FROM " +
getClassName(clazz) + " em ORDER BY " + orderClause);
return query.getResultList();
}
Find Fresh: Guarantees you're getting the freshest entity out of the
DB (useful for crud)
public <T> T findFresh(Class<T> entityClass, Object primaryKey) {
T result = getEntityManager().find(entityClass, primaryKey);
if(result == null)
return null;
getEntityManager().refresh(result);
return result;
}
Get a named query results:
public <T> List<T> getNamedQuery(Class<T> entityClass, String
name,Object...binds)
{
Query query = getEntityManager().createNamedQuery(name);
for (int i = 0; i < binds.length; i++) {
Object tmp = binds[i];
query.setParameter(i+1,tmp);
}
return (List<T>) getNamedQuery(name,binds);
}
./tch
On Mon, Jul 28, 2008 at 10:28 AM, Gaurav Malhotra
<gaurav.malhotra@xxxxxxxxxx> wrote:
>
> Thanks for the reply
>
> I achieved this using
>
> public List<T> findByExample(T exampleCriteria) {
> final T t = exampleCriteria;
> List<T> list = (List<T>) getJpaTemplate().execute(new JpaCallback() {
> public Object doInJpa(javax.persistence.EntityManager em)
> throws javax.persistence.PersistenceException {
> final ReadAllQuery query = new ReadAllQuery(t.getClass());
> query.useCollectionClass(LinkedList.class);
> query .setExampleObject(t);
> List<T> results = (List<T>) ((Session)
> em.getDelegate()).executeQuery(query);
>
> return results;
> }
> });
>
> return list;
>
> My Aim (using spring)
> 1. Write on Generic DAO
> 2. One CRUD service
> 3. One SearchService
> 4. Use generic to abstract over types.
>
> JUnit testing is pending... will keep you posted.
>
> Thanks...a bunch
>
>
>
>
> Gaurav Malhotra wrote:
>>
>> In Hibernate I use to write the following generic code and utilize
>> hibernates org.hibernate.criterion.Example.
>>
>> http://www.hibernate.org/hib_docs/v3/api/org/hibernate/criterion/Example.html
>>
>> public List<T> findByExample(T exampleCriteria) {
>> final T t = exampleCriteria;
>> List<T> list = (List<T>) getJpaTemplate().execute(new JpaCallback() {
>> public Object doInJpa(javax.persistence.EntityManager em)
>> throws javax.persistence.PersistenceException {
>> final Example example = Example.create(t).excludeZeroes();
>>
>> Criteria criteria = ((Session) em.getDelegate())
>> .createCriteria(t.getClass()).add(example)
>> .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
>>
>> return criteria.list();
>> }
>> });
>> return list;
>> }
>>
>> Whats an equivalent in EclipseLink??
>>
>
> --
> View this message in context: http://www.nabble.com/org.hibernate.criterion.Example-equivalent-in-Eclipselink-tp18688959p18689235.html
> Sent from the EclipseLink - Users mailing list archive at Nabble.com.
>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
>