IntegratedShipmentRepositoryImpl.java
package com.tradecloud.repository.export.shipment.impl;
import com.tradecloud.domain.integration.IntegratedShipment;
import com.tradecloud.repository.base.impl.RepositoryBaseImpl;
import com.tradecloud.repository.export.shipment.IntegratedShipmentRepository;
import org.hibernate.query.NativeQuery;
import org.hibernate.query.Query;
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;
@Repository(value = "integratedShipmentRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class IntegratedShipmentRepositoryImpl extends RepositoryBaseImpl<IntegratedShipment, Object> implements IntegratedShipmentRepository {
@Override
public List<IntegratedShipment> findAllSortedById() {
return (List<IntegratedShipment>) getNamedQuery("findAllIntegratedShipmentSortedById");
}
@Override
public IntegratedShipment findOldest(List<String> exclude) {
StringBuilder queryString = new StringBuilder("from IntegratedShipment ish ");
if (exclude != null && !exclude.isEmpty())
queryString.append("where ish.reference not in (:exclude) ");
queryString.append("order by ish.id");
Query query = getSession().createQuery(queryString.toString());
if (exclude != null && !exclude.isEmpty())
query.setParameter("exclude", exclude);
query.setMaxResults(1);
return (IntegratedShipment) query.uniqueResult();
}
@Override
public List<String> findAllUsers() {
NativeQuery nativeQuery = getSession().createNativeQuery("select username from IntegratedShipment");
return nativeQuery.list();
}
}