标签:ApiModel 实体 value SpingROOT Date 注解 swagger
@TableName("CG_WO_FAULT_EXPERT_PAPERS")
实体类加这个注解 controller直接可以去查询表了
@Accessors(chain = true)注解是用来干嘛的?
这个注解是来自与Lombok里的,具体的作用是开启链式编程,让我们写代码更加方便。
. 排查
经过排查发现是因为 @ApiModel 直接使用不规范导致的.
错误用法: @ApiModel(value = "用户信息")
正确用法: @ApiModel(description = "用户信息")
经过排查发现, swagger2 是需要 value 属性在同一个服务全局中保持唯一的, swagger 会把所有的 API 中的出入参实体列在 swagger 文档的最下方, 如果存在多个实体的 @ApiModel(value = "用户信息") 注解相同, 那么 swagger 只会识别一个, 其他的 实体 会被覆盖, 不会被显示, 其他被覆盖的 实体在 API 被引用的地方在文档中会被识别的相同名称的实体 替代, 导致文档展示错乱问题
4. 解决
使用正确的用法:
@ApiModel(description = "用户信息"), 如果我们能在代码规范中保证实体名称不会重复, value 使用默认就好, 所以不再配置, 实体说明使用 description 来进行配置.
用于id字段上
@ApiModelProperty(value = "主键")
@TableId("ID")
@JsonSerialize(using = ToStringSerializer.class)
@JsonSerialize(using = ToStringSerializer.class)放在实体类的字段上可以把int类型
数据转换成String类型,防止int类型数据过长,前端拿到数据变成00000
用于其他字段
@ApiModelProperty(value = "说明")
@TableField("FILE_DESC")
sql中datetime转换到实体为Date比较大小直接用Date比较
Date parse1 = new SimpleDateFormat("yyyy-MM-dd").parse(dealDateZ);
java.sql.Date date = new java.sql.Date(parse.getTime());
标签:ApiModel,
实体,
value,
SpingROOT,
Date,
注解,
swagger
From: https://www.cnblogs.com/juruixing/p/17324767.html