开发注意事项

Administrator
发布于 2025-06-18 / 2 阅读
0
0

开发注意事项

1.注意:

import org.mapstruct.Mapper; 和 import org.apache.ibatis.annotations.Mapper; 引入错误会报

java: Can't generate mapping method with primitive return type.

2.当对数据进行拷贝的时候,修改了po,直接在控制台输入:PS D:\workspace\asdre-biz-ltq> mvn clean compile

import com.asdre.biz.ltq.common.model.po.QuestionStorePO;
import com.asdre.biz.ltq.common.model.req.QuestionStoreUpdateReq;
import com.asdre.biz.ltq.common.model.vo.EvaProgressVO;
import com.asdre.biz.ltq.common.model.vo.QuestionStoreVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
​
import java.util.List;
​
/**
 * @author : xiaosheng
 * @description :
 * @createDate : 2025/6/5 15:35
 */
@Mapper
public interface QuestionStoreConvert {
​
    QuestionStoreConvert INSTANCE = Mappers.getMapper(QuestionStoreConvert.class);
​
    /**
     * req转po
     *
     * @param req
     * @return
     */
    QuestionStorePO req2po(QuestionStoreUpdateReq req);
​
​
}
​

🚨 由 MapStruct 注解处理器生成的类。⚠️ 它不是你手写的类,每次你修改接口、VO、PO 时,它需要重新执行编译处理器才能更新实现类。DictConvertImpl 没有刷新?

通常有以下几种原因:

原因

说明

① 没有重新编译

IDE 没有触发注解处理器,或者编译失败未更新

② 使用了 --compile 而非 --annotationProcessor

maven 或 gradle 的构建没有启用 MapStruct 注解处理器

③ IDEA 的编译缓存未清理

尤其是用 IDEA 的 Build Project 有时候不触发注解处理

④ 引用了旧 class 文件

实现类未被更新,但编译器仍然引用旧的 class


✅ 解决方法(推荐按顺序试):

✅ 方法 1:清理并重新构建项目

适用于 Maven 项目:

mvn clean compile

或如果你使用了 IDEA:

  • 点击顶部菜单 BuildRebuild Project

3.对Long数据类型进行String操作

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
​
/**
 * @author : xiaosheng
 * @description :
 * @createDate : 2025/6/20 9:01
 */
@Data
public class DictNameVO {
​
    /**
     * 题目id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long dictId;
​
    /**
     * 字典名称
     */
    private String name;
    
    /**
     * 生日
     */
    @JsonFormat(timezone = Constants.TIMEZONE, pattern = Constants.DATE_PATTERN)
    private Date birthday;
    
      /**
     * 单词对应的音素
     */
    @JsonIgnore
    private String phones;
}



评论