小编Ste*_*nPG的帖子

springdoc-openapi 如何显示字符串数组作为响应

网络上没有关于如何使用 springdocs-openapi 库 (1.5.7) 获取以下输出的好示例。我希望获得以下输出:

[
  "A", "B", "C"
]
Run Code Online (Sandbox Code Playgroud)

这是基于所提供示例的代码。

@Operation(summary = "")
    @ApiResponses(value = {
            @ApiResponse(responseCode = "200", description = "OK",
                    content = {@Content(mediaType = "application/json",
                            array = @ArraySchema(schema = @Schema(implementation = String.class)),
                            examples = {@ExampleObject("A"), @ExampleObject("B"), @ExampleObject("C")}
                    )})
Run Code Online (Sandbox Code Playgroud)

这会产生以下输出

[
  "string"
]
Run Code Online (Sandbox Code Playgroud)

上面列出的输出 ["A","B","C"] 如何通过 springdocs-openapi 库实现?

spring-boot springdoc springdoc-ui springdoc-openui springdoc-openapi-ui

4
推荐指数
1
解决办法
7353
查看次数

如何在 Hibernate 6 Spring Boot 3 中将枚举保留为字符串,而不在 PostgreSQL 中使用 hibernate-types-62

通过以下 postgresql 数据库组件以及在 Spring Boot 3 (Hibernate 6) 中删除 @Type 和 @Typedef 注释,当数据库也对该列使用 Enum 类型时,如何将枚举作为字符串保留在数据库中。

PG数据库示例:

CREATE TYPE TEST_TYPE AS ENUM ('TESTA','TESTB');

CREATE TABLE test_table (
    id     INT           NOT NULL PRIMARY KEY,
    type   TEST_TYPE     NOT NULL
);
Run Code Online (Sandbox Code Playgroud)

与以下实体

@Entity
@Table(name = "test_table")
public class TestTableEntity
{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Enumerated(EnumType.STRING)
    @Column(name = "type")
    private TestType tenantId;
}
Run Code Online (Sandbox Code Playgroud)

此操作失败并出现错误,因为它尝试将其保留为字符串而不是枚举类型。

所有其他资源均使用 hypersistence-utils 库 hibernate-types-62 进行引用。但是,我不需要依赖外部 utils 库。

其他解决方案很笨重,需要仅为枚举实现新的层次结构。

PostgreSQL 更简单的解决方案是什么?

enums spring hibernate jpa spring-boot

2
推荐指数
1
解决办法
1815
查看次数