【发布时间】:2022-12-15 01:48:40
【问题描述】:
我正在与 Spring WebFlux 和 r2dbc 合作。
我有一个带有枚举字段的实体,我想在序列化为字符串时将其作为 tinyint 存储在 mysql 中。
// Order.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table("orders")
public class Order {
@Id
Long id;
StatusEnum status;
}
// StatusEnum.java
@AllArgsConstructor
public enum StatusEnum {
PENDING(11),
IN_PROGRESS(12),
SUCCESSFUL(13),
FAILED(14),
UNKNOWN(255);
final int value;
}
// sql
CREATE TABLE IF NOT EXISTS orders (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
status TINYINT UNSIGNED NOT NULL DEFAULT 255
) ENGINE=INNODB;
// API result for e.g. GET /api/orders
[
{ "id": 1, "status": "PENDING" },
{ "id": 2, "status": "IN_PROGRESS" },
{ "id": 3, "status": "SUCCESSFUL" },
{ "id": 4, "status": "FAILED" }
]
插入记录时报错:
Incorrect integer value: 'PENDING' for column 'status' at row 1; nested exception is io.r2dbc.spi.R2dbcNonTransientResourceException
我该如何解决?谢谢。
【问题讨论】:
-
你有没有解决这个问题?我有同样的问题
标签: java mysql spring-boot jackson r2dbc