自定义CrudService和CrudServiceImpl解决 数据id字段类型与人人框架代码中id类型不一致的问题

数据库中表的id字段是varchar类型的,使用代码生成器生成的代码中会调用人人框架自带的CrudService和CrudServiceImpl,
而人人框架自带的CrudService是这样的:

package io.renren.common.service;

import io.renren.common.page.PageData;

import java.util.List;
import java.util.Map;

/**
 *  CRUD基础服务接口
 *
 * @author Mark sunlightcs@gmail.com
 */
public interface CrudService<T, D> extends BaseService<T> {

    PageData<D> page(Map<String, Object> params);

    List<D> list(Map<String, Object> params);

    D get(Long id);

    void save(D dto);

    void update(D dto);

    void delete(Long[] ids);

}

注意其中id都是Long类型的,发生冲突,那么我们就无法使用生成的代码了,
但是我们既想使用生成的代码(省事啊),又想解决冲突,该怎么办呢?
解决方案:
自定义CrudService和CrudServiceImpl以及BaseService和BaseServiceImpl
其中代码都是一模一样的,只需要将Long id改为String id即可
示例如下:

package com.broit.fish.modules.service;

import io.renren.common.page.PageData;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

/**
 *  CRUD基础服务接口
 *
 * @author Mark sunlightcs@gmail.com
 */
public interface CrudService<T, D> extends BaseService<T> {

    PageData<D> page(Map<String, Object> params);

    List<D> list(Map<String, Object> params);

    D get(String id);

    void save(D dto);

    void update(D dto);

    @Transactional
    int delete(String[] ids,String optUserId,D dto);

}

然后,又遇到另一个问题:
业务要求实现逻辑删除,也就是说delete实际上是update,那么该怎么办呢?方案如下:

posted @ 2020-12-05 11:37  yx袁祥  阅读(909)  评论(0)    收藏  举报