Java实体插入DB更改列类型

标签 java database entity persistence

我从带有名为“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 为 String),因为现在我发出 API 请求并获得 json 格式响应 {key1: "response1, key2 : "response2 ", ...} 带有字符串。我得到的新类型的数字类似于“CHG0070132”。

如何更改类型而不丢失旧数据?

最佳答案

您需要分两部分进行更改

  1. DB,您需要手动更改DB中表的列类型Check here
  2. 将 getter、Setter 和变量数据类型从 long 更改为 String

关于Java实体插入DB更改列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58485029/

相关文章:

java - 在 Hibernate 中处理环境特定字段的最佳方法

java - 仅映射 JoinTable 关系中的一列

java - 匹配器: "No match found..."

mysql - 修改我的网站以允许匿名评论

MySQL 子实体

database - 环回 : Atomic read and update

c# - 基于access数据库中的代码检索数据c#

java 垃圾回收和空引用

java - 图像被缓存并耗尽了我的堆空间

java - 如何使用 Java 处理与 Selenium 自动化中的其他元素重叠的日历?