【问题标题】:how to store enum as tinyint in mysql with r2dbc如何使用 r2dbc 在 mysql 中将枚举存储为 tinyint
【发布时间】:2022-12-15 01:48:40
【问题描述】:

我正在与 Spring WebFluxr2dbc 合作。

我有一个带有枚举字段的实体,我想在序列化为字符串时将其作为 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


【解决方案1】:

你有没有解决这个问题?我有同样的问题

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 2018-05-30
    • 2019-06-05
    • 2018-06-14
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多