1 package com.supwisdom.institute.backend.common.framework.repo;
3 import java.util.Calendar;
5 import java.util.Optional;
7 import org.springframework.data.domain.Page;
8 import org.springframework.data.domain.PageRequest;
9 import org.springframework.data.jpa.repository.JpaRepository;
10 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
11 import org.springframework.data.repository.NoRepositoryBean;
13 import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity;
14 import com.supwisdom.institute.backend.common.util.UUIDUtils;
17 public interface BaseJpaRepository<E extends ABaseEntity> extends JpaRepository<E, String>, JpaSpecificationExecutor<E> {
22 * 如果需要生成主键,需要由子类重写此方法根据需要的方式生成主键值。
23 * @param entity 要持久化的对象
25 public default String generateId() {
26 return UUIDUtils.create();
29 public default Page<E> selectPageList(boolean loadAll, int pageIndex, int pageSize, Map<String, Object> mapBean, Map<String, String> orderBy) {
33 pageSize = Integer.MAX_VALUE;
36 PageRequest pageRequest = PageRequest.of(pageIndex, pageSize);
38 Page<E> page = this.findAll(pageRequest);
43 public default E selectById(String id) {
46 Optional<E> entity = this.findById(id);
48 if (entity.isPresent()) {
51 } catch (RuntimeException e) {
52 System.out.println("RuntimeException:" + e.getMessage());
53 } catch (Exception e) {
54 System.out.println("Exception:" + e.getMessage());
60 public default E insert(E entity) {
62 if (entity.getId() == null || entity.getId().isEmpty()) {
63 entity.setId(generateId());
66 if (entity.getCompanyId() == null || entity.getCompanyId().isEmpty()) {
67 entity.setCompanyId("1");
70 if (entity.getDeleted() == null) {
71 entity.setDeleted(false);
73 if (entity.getAddAccount() == null) {
74 //entity.setAddAccount(AuthUtil.getRemoteUser()); // FIXME: setAddAccount
76 if (entity.getAddTime() == null) {
77 entity.setAddTime(Calendar.getInstance().getTime());
80 E e = this.save(entity);
85 public default E update(E entity) {
87 if (entity.getEditAccount() == null) {
88 //entity.setEditAccount(AuthUtil.getRemoteUser()); // FIXME: setEditAccount
90 if (entity.getEditTime() == null) {
91 entity.setEditTime(Calendar.getInstance().getTime());
94 E e = this.save(entity);
100 public default E remove(E entity) {
102 if (entity.getDeleted() == null) {
103 entity.setDeleted(true);
105 if (entity.getDeleteAccount() == null) {
106 //entity.setDeleteAccount(AuthUtil.getRemoteUser()); // FIXME: setDeleteAccount
108 if (entity.getDeleteTime() == null) {
109 entity.setDeleteTime(Calendar.getInstance().getTime());
112 E e = this.save(entity);
118 public default void delete(String id) {