name.marcelomorales.siqisiqi.openjpa.spring.OpenJpaRepositoryImpl.java Source code

Java tutorial

Introduction

Here is the source code for name.marcelomorales.siqisiqi.openjpa.spring.OpenJpaRepositoryImpl.java

Source

/*
 * 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);
    }
}