首页 > 解决方案 > Java实体插入数据库更改列类型

问题描述

我从具有名为“RELEASE”的持久类(javax.persistence 依赖项)的 java 代码继承

@Entity
@Table(name = "\"RELEASE\"")
@Converter(name = "booleanConverter", converterClass = BooleanConverter.class)
public class Release implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @Column(updatable = false, unique = true, nullable = false, precision = 22)
    private Long id;

    @Convert("booleanConverter")
    @Column(nullable = false, length = 5)
    private Boolean active;

    @Column(nullable = false, length = 125)
    private String name;

    // uni-directional many-to-one association to Service
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "SERVICE_ID", nullable = false)
    private Service service;

与 getter 和 setter 相关联,我必须更改 Id 列的类型(Long to String),因为现在我发出 API 请求并获得{key1: "response1, key2 : "response2" , ...}带有字符串的 json 格式响应。我得到的新型号码就像“CHG0070132”。

如何在不丢失旧数据的情况下更改类型?

标签: javadatabaseentitypersistence

解决方案


您需要更改 2 个部分

  1. 数据库,您需要手动更改数据库中表的列类型检查这里
  2. 将 getter Setter 和变量数据类型从 long 更改为 String

推荐阅读