我正在使用swagger-codegen-maven-plugin
根据swagger.yaml
规范生成Java类。
我在phoneNum
中添加了属性swagger.yaml
,如下所示:
phoneNum:
type: number
我希望它生成具有Integer
或Long
数据类型的属性。
但是它生成为BigDecimal phoneNum;
根据swagger docs,提到使用format: int64
phoneNum:
type: number
format: int64
但是,最终还是生成了private BigDecimal phoneNum;
如果任何人都遇到过类似的问题并有解决方法,请在此处分享。
谢谢。
答案 0 :(得分:2)
要生成Long
属性,您必须使用integer
作为类型,并使用int64
作为格式
phoneNum:
type: integer
format: int64
从AbstractJavaCodegen看,我认为无法生成Timestamp
属性。
唯一可用的类型是:
org.threeten.bp.LocalDate
org.threeten.bp.OffsetDateTime
org.joda.time.LocalDate
org.joda.time.DateTime
java.time.LocalDate
java.time.LocalDateTime
java.time.OffsetDateTime
java.util.Date
这是将OffsetDateTime转换为时间戳的一种方法
OffsetDateTime dateTime = OffsetDateTime.now();
Timestamp timestamp = Timestamp.valueOf(dateTime.atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime());