我们使用mybatis-plus是使用this.save(pojo)后发现,后面的业务需要用到pojo的id,但是pojo的id是自动生成的,这时候就…,我们可以定义业务层的父接口去实现。上代码
1.定义父接口
import com.baomidou.mybatisplus.extension.service.IService;
public interface IBaseService<T> extends IService<T> {
/**
* 保存并返回的方法
* @param t
* @return
*/
T saveAndReturn(T t);
}
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.forum.service.common.IBaseService;
public class IServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M , T> implements IBaseService<T> {
@Override
public T saveAndReturn(T t){
this.saveOrUpdate(t);
return t;
}
}
2.业务层sevice
@Service
public interface UserService{
User saveAndReturnUser(User pt);
}
@Service
@Transactional
public class UserServiceImpl extends IServiceImpl<UserMapper, User> implements UserService {
@Override
public User saveAndReturnUser(User pt) {
this.saveOrUpdate(pt);
return pt;
}
@Override
public boolean save(User log) {
log.setCreated(new Timestamp(System.currentTimeMillis()));
log.setUpdated(new Timestamp(System.currentTimeMillis()));
return super.save(log);
}
@Override
public boolean saveOrUpdate(User log) {
if (log.getId() == null) {
log.setCreated(new Timestamp(System.currentTimeMillis()));
}
log.setUpdated(new Timestamp(System.currentTimeMillis()));
return super.saveOrUpdate(log);
}
如此一来调用saveAndReturnUser保存就可以返回对象并得到id了,并集修改保存于一体,自动记录了创建和修改时间。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)