IntegratedGRRRepositoryImpl.java

package com.tradecloud.repository.impl;

import com.tradecloud.domain.integration.IntegratedGoodReceivedReceipt;
import com.tradecloud.repository.IntegratedGRRRepository;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Optional;

@Repository(value = "integratedGRRRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class IntegratedGRRRepositoryImpl extends RepositoryBaseImpl<IntegratedGoodReceivedReceipt, Object> implements IntegratedGRRRepository {

    @Override
    public List<IntegratedGoodReceivedReceipt> findAllSortedById() {
        return (List<IntegratedGoodReceivedReceipt>) getNamedQuery("findAllGRRSortedById");
    }

    @Override
    public Optional<IntegratedGoodReceivedReceipt> findFirstSortedById() {
        List<IntegratedGoodReceivedReceipt> results =
                (List<IntegratedGoodReceivedReceipt>) getNamedQuery("findAllGRRSortedById", 1);

        // Return the first result wrapped in an Optional
        return results.stream().findFirst();
    }
}