Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] org.hibernate.criterion.Example equivalent in Eclipselink

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.



Back to the top