mybatisplus 与 model中构造方法赋值字段对应关系
@TableName("ROD_LOG") public class RodLog implements Serializable{ /** * */ private static final long serialVersionUID = 1L; public RodLog() { super(); } /** * 日志构造方法 * @param system_id * @param module_id * @param file_type * @param file_name * @param file_path * @param create_user * @param opt_type * @param create_time */ public RodLog(String system_id, String module_id, String file_type, String file_name, String file_path, String create_user, String opt_type,Date create_time) { super(); this.system_id = system_id; this.module_id = module_id; this.file_type = file_type; this.file_name = file_name; this.file_path = file_path; this.create_user = create_user; this.opt_type = opt_type; this.create_time = create_time; } /** 主键id */ @TableId(type = IdType.UUID,value = "ID") private String id; /** 创建时间 */ @TableField(value = "CREATE_TIME") private Date create_time; /** 系统ID*/ @TableField(value = "SYSTEM_ID") private String system_id; /** 模块*/ @TableField(value = "MODULE_ID") private String module_id; /** 文件类型:文件file , 文件夹folder */ @TableField(value = "FILE_TYPE") private String file_type; /** 文件名称*/ @TableField(value = "FILE_NAME") private String file_name; /** 文件完整路径 */ @TableField(value = "FILE_PATH") private String file_path; /** 操作人 */ @TableField(value = "CREATE_USER") private String create_user; /** 操作类型 */ @TableField(value = "OPT_TYPE") private String opt_type; /** 操作异常消息描述 */ @TableField(value = "ERROR_MSG") private String error_msg; @TableField(exist = false) private String system_name; @TableField(exist = false) private String module_name; @TableField(exist = false) private String opt_type_str; @TableField(exist = false) private String user_name;
上面是数据表对应的实体类
由于service中需要,构造了参数的构造方法,开始没写
public RodLog() { super(); }
这个空构造方法;
然后在mybatisplus的.xml文件中
select 字段 from rod_log
但是字段顺序并没有按照构造方法中字段顺序来的,后台总是报错,debugger构造方法,发现把file_type字段赋值给日期字段create_time
字段完全错乱了,为啥?mybatisplus不是能根据字段名来set get赋值取值的吗?
两种解决方法:
1、select 语句按你构造方法中字段顺序来写;
2、加一个默认的不带参数的构造方法,