Mybatis-plus保存save并返回对象

Mybatis-plus保存save并返回对象,第1张

我们使用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了,并集修改保存于一体,自动记录了创建和修改时间。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/916477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存