hibernate如何配置Spring Boot JPA Java实体来自动修剪每个字符列中的字符串?
我很震惊,这个问题的答案并不容易找到,但是——我如何配置我的Spring Boot应用程序的JPA实体来自动修剪每个字符串属性
我正在使用一个遗留的DB2数据库,其中每个CHAR列的每个值都由我无法控制的各种应用程序用尾随空格填充。大约有50个相互关联的表,其中有许多CHAR(N)列,我必须对数据进行无数次转换和比较,而这些转换/比较从来都不适用于尾随空间。所以我发现自己在代码中调用trim()大约10亿次
重写实体POJO类的getter/setter方法感觉很恶心,因为有数百种方法,而且我刚刚用Lombok将它们全部去掉。请告诉我有一种配置Spring/Hibernate的方法,可以自动从每个CHAR(N)字符串列中删除尾随空格
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Data
@NoArgsConstructor
@Entity
@Table(name="MEASUREMENT_TYPE")
public class MeasurementType {
@Id
@Column(name="MSR_TYP_CD")
private short measurementTypeCode;
@Column(name="DES_TXT", columnDefinition = "CHAR", length = 5)
private String description;
}
# 1 楼答案
一种解决方案是创建一个自定义转换器,如下所示:
并在每个
CHAR
列中使用: