首页 > 解决方案 > JPA 注释在插入时替换字符

问题描述

我有一个实体,我在其中声明了一个名为“名称”的字段。该字段表示文件名。我需要做的是用空字符串或其他字符串替换 Windows 文件名中不允许的所有特殊字符,以便在我保存该实体时它们不会进入数据库。

@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Where(clause = "is_active = true")
@EqualsAndHashCode(callSuper = true)
@Table(name = "File")
public class FileEntity extends BaseEntity {

    @NotBlank
    @Column(name = "Name", unique = true)
    private String name;

    ...
}

因此,假设我放置了一个名称School project : 123,我想用下划线替换冒号,就像您所做的那样 via name.replaceAll("[^/./\\:*?\"<>|]", "_");,因此存储在数据库中的结果名称将是School project _ 123

这甚至可以通过注释(包括在replaceAll()那里)还是我在这里问错误的问题?

标签: javaregexspring-bootspring-data-jpaentity

解决方案


您需要声明 setter,在其中通过替换要替换的符号来转换原始字符串。


推荐阅读