PaymentBasisRepositoryImpl.java

package com.tradecloud.repository.staticdata;

import com.tradecloud.domain.model.payment.PaymentBasis;
import com.tradecloud.repository.impl.RepositoryBaseImplNoSearch;

import java.util.List;

/**
 * Abstract base class that holds common functionality for all implementations of {@code PaymentBasisRepository}.
 *
 * @param <T> Any sublcass of {@code PaymentBasisRepository}
 */
public abstract class PaymentBasisRepositoryImpl<T extends PaymentBasis> extends RepositoryBaseImplNoSearch<T> implements PaymentBasisRepository<T> {

    private static final long serialVersionUID = 1L;

    public List<T> findAllExcludingCodes(String paymentBasisType, String... codes) {
        String s = "";
        int i = 0;
        for (String code : codes) {
            if (s != "" && i != codes.length) {
                s = s + " and ";
            }
            s = s + " code <> '" + code + "' ";
        }

        String query = "from PaymentBasis where paymentBasisType = :paymentBasisType and "+s+" order by name";
        return (List<T>)getCurrentSession().createQuery(query).setParameter("paymentBasisType", paymentBasisType).list();
    }
}