cubetiq-data-jpa-module/src/main/java/com/cubetiqs/data/repository/BaseRepositoryImpl.java

48 lines
1.5 KiB
Java

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<T, ID extends Serializable>
extends SimpleJpaRepository<T, ID>
implements BaseRepository<T, ID> {
private final Logger logger = Log.getLogger(getClass());
public BaseRepositoryImpl(JpaEntityInformation<T, ?> entityInformation, EntityManager entityManager) {
super(entityInformation, entityManager);
}
@Override
public List<T> searchByQueryable(Queryable<T> queryable) {
List<T> records = findAll(queryable);
logger.info("find all records: {}", records.size());
return records;
}
@Override
public Page<T> searchByQueryable(Queryable<T> queryable, Pageable pageable) {
Page<T> records = findAll(queryable, pageable);
logger.info("find all records: {} and pages: {}", records.getTotalElements(), records.getTotalPages());
return records;
}
}