Java tutorial
/* * Copyright 2013 Marcelo Morales me@marcelomorales.name * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package name.marcelomorales.siqisiqi.openjpa.spring; import name.marcelomorales.siqisiqi.openjpa.api.OrderBy; import name.marcelomorales.siqisiqi.openjpa.api.OrmFinderSettings; import name.marcelomorales.siqisiqi.openjpa.impl.OrmFinderImpl; import org.springframework.data.jpa.repository.support.SimpleJpaRepository; import org.springframework.data.repository.NoRepositoryBean; import javax.persistence.EntityManager; import java.io.Serializable; import java.util.List; /** * @author Marcelo Morales * Date: 8/29/13 */ @NoRepositoryBean public class OpenJpaRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRepository<T, ID> implements OpenJpaRepository<T, ID> { private EntityManager em; private Class<T> domainClass; private OrmFinderSettings<T, ID> finderSettings; public OpenJpaRepositoryImpl(Class<T> domainClass, EntityManager em, OrmFinderSettings<T, ID> finderSettings) { super(domainClass, em); this.em = em; this.domainClass = domainClass; this.finderSettings = finderSettings; } @Override public T findByPK(ID id, String... fg) { return new OrmFinderImpl<>(em, domainClass, finderSettings).findByPK(id, fg); } @Override public T findCached(ID id) { return new OrmFinderImpl<>(em, domainClass, finderSettings).findCached(id); } @Override public long countByAttribute(String attributeName, Object attributeValue) { return new OrmFinderImpl<>(em, domainClass, finderSettings).countByAttribute(attributeName, attributeValue); } @Override public List<T> findByAttribute(String attributeName, Object attributeValue, long first, long count, String... fg) { return new OrmFinderImpl<>(em, domainClass, finderSettings).findByAttribute(attributeName, attributeValue, first, count, fg); } @Override public long countByFullTexts(String terms) { return new OrmFinderImpl<>(em, domainClass, finderSettings).countByFullTexts(terms); } @Override public List<T> findByFullTexts(String terms, OrderBy<T> orders, long first, long count, String... fg) { return new OrmFinderImpl<>(em, domainClass, finderSettings).findByFullTexts(terms, orders, first, count, fg); } @Override public long countByExample(T example, T example2) { return new OrmFinderImpl<>(em, domainClass, finderSettings).countByExample(example, example2); } @Override public List<T> findByExample(T example, T example2, OrderBy<T> sortParam, long first, long count, String... fg) { return new OrmFinderImpl<>(em, domainClass, finderSettings).findByExample(example, example2, sortParam, first, count, fg); } }