package com.cubetiqs.data.repository; import com.cubetiqs.data.domain.Queryable; import com.cubetiqs.logging.Log; import org.apache.logging.log4j.Logger; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.support.JpaEntityInformation; 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; /** * Base Repository Impl * * @author sombochea * @see BaseRepository * @see SimpleJpaRepository * @since 1.0 */ @NoRepositoryBean public class BaseRepositoryImpl extends SimpleJpaRepository implements BaseRepository { private final Logger logger = Log.getLogger(getClass()); public BaseRepositoryImpl(JpaEntityInformation entityInformation, EntityManager entityManager) { super(entityInformation, entityManager); } @Override public List searchByQueryable(Queryable queryable) { List records = findAll(queryable); logger.info("find all records: {}", records.size()); return records; } @Override public Page searchByQueryable(Queryable queryable, Pageable pageable) { Page records = findAll(queryable, pageable); logger.info("find all records: {} and pages: {}", records.getTotalElements(), records.getTotalPages()); return records; } }