自定义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,那么该怎么办呢?方案如下:
如有不当,欢迎指正

浙公网安备 33010602011771号