gpt4 book ai didi

java - 将 Varchar 列类型映射到实体 jpa 中的 Integer

转载 作者:行者123 更新时间:2023-12-02 16:40:44 27 4
gpt4 key购买 nike

我有一个遗留表,其中一列的类型是 varchar,但里面全是数字。我不想更改表中的数据类型。我想更改实体中的列数据类型。

在它是字符串之前,现在我将它更改为 Integer 并且 crud 操作工作正常。这是很好的做法还是有其他方法可以做到?示例代码:

之前:

@Entity
public class TestEntity{
@Column(name = "Test")
private String test;
}

现在:

@Entity
public class TestEntity{
@Column(name = "Test")
private Integer test;
}

最佳答案

创建一个 AttributeConverter 用于数据库到实体类型的转换

@Converter
public class IntegerToStringConverter implements AttributeConverter < Integer,
String > {
@Override
public String convertToDatabaseColumn(Integer value) {
return Integer.toString(number);
}

@Override
public Integer convertToEntityAttribute(String number) {
try {
return Integer.parseInt(number);
} catch (Exception e) {
throw new IllegalStateException("Invalid number: " + value);
}
}
}

并在你的专栏上使用它

@Convert(converter = IntegerToStringConverter.class)
@Column(name = "Test")
private Integer Test;

关于java - 将 Varchar 列类型映射到实体 jpa 中的 Integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61731604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com