/** * 按照属性查找对象,匹配方式为"=" * * @param propertyName 属性名称 * @param value 属性值 * @return */ @SuppressWarnings("unchecked") public List<T> findByProperty( final Class<T> entityClass, final String propertyName, final Object value) { Assert.hasText(propertyName, "propertyName不能为空"); Search search = new Search(entityClass); SearchUtil.addFilterEqual(search, propertyName, value); return searchProcessor.search(this.getEntityManager().getPersistEntityManager(), search); }
/** 按属性查找唯一对象, 匹配方式为相等. */ @SuppressWarnings("unchecked") public T findUniqueByProperty( final Class<T> entityClass, final String propertyName, final Object value) { Search search = new Search(entityClass); search.setResultMode(Search.RESULT_SINGLE); SearchUtil.addFilterEqual(search, propertyName, value); return (T) searchProcessor.searchUnique(this.getEntityManager().getPersistEntityManager(), search); }
/** * 按照属性查找对象,匹配方式为"in" * * @param propertyName 属性名称 * @param value 属性值 * @param orderByProperty 排序属性名称 * @param isDesc true:降序,false:升序 * @return */ @SuppressWarnings("unchecked") public List<T> findByPropertyAndOrderWithParams( final Class<T> entityClass, final String propertyName, final Collection<?> values, final String orderByProperty, boolean isDesc) { Assert.hasText(propertyName, "propertyName不能为空"); Search search = new Search(entityClass); SearchUtil.addFilterIn(search, propertyName, values); SearchUtil.addSort(search, orderByProperty, isDesc); return searchProcessor.search(this.getEntityManager().getPersistEntityManager(), search); }
/** * 根据id获取对象列表 * * @param ids * @return */ @SuppressWarnings("unchecked") public List<T> get(final Class<T> entityClass, final Collection<PK> ids) { Search search = new Search(entityClass); search.setResultMode(Search.RESULT_LIST); JPAAnnotationMetadataUtil metadataUtil = new JPAAnnotationMetadataUtil(); T entity; try { entity = entityClass.newInstance(); } catch (Exception e) { logger.error("根据主键集合查找对象 {}发生异常! ", entityClass.getClass()); throw new RuntimeException("根据主键集合查找对象发生异常", e); } String propertyName = metadataUtil.getIdPropertyName(entity); SearchUtil.addFilterIn(search, propertyName, ids); return searchProcessor.search(this.getEntityManager().getPersistEntityManager(), search); }
/** * 获取全部对象, 支持按属性行序 * * @param orderByProperty 排序的属性名称 * @param isDesc true:降序,false:升序 * @return */ @SuppressWarnings("unchecked") public List<T> getAll(final Class<T> entityClass, String orderByProperty, boolean isDesc) { Search search = new Search(entityClass); SearchUtil.addSort(search, orderByProperty, isDesc); return searchProcessor.search(this.getEntityManager().getPersistEntityManager(), search); }
/** * 获取全部对象 * * @return */ @SuppressWarnings("unchecked") public List<T> getAll(final Class<T> entityClass) { Search search = new Search(entityClass); return searchProcessor.search(this.getEntityManager().getPersistEntityManager(), search); }
public Filter getFilterFromExample(Object example, ExampleOptions options) { return processor.getFilterFromExample(example, options); }
public Object searchUnique(Class<?> searchClass, ISearch search) { return processor.searchUnique(entityManager, searchClass, search); }
public Filter getFilterFromExample(Object example) { return processor.getFilterFromExample(example); }
public Object searchUnique(ISearch search) { return processor.searchUnique(entityManager, search); }
@SuppressWarnings("unchecked") public SearchResult searchAndCount(Class<?> searchClass, ISearch search) { return processor.searchAndCount(entityManager, searchClass, search); }
public int count(Class<?> searchClass, ISearch search) { return processor.count(entityManager, searchClass, search); }
public int count(ISearch search) { return processor.count(entityManager, search); }
@SuppressWarnings("unchecked") public List search(Class<?> searchClass, ISearch search) { return processor.search(entityManager, searchClass, search); }