JPA 注释替换插入的字符

JPA annotation replace characters on insert

我有一个实体,我在其中声明了一个名为“名称”的字段。该字段表示文件名。我需要做的是用空字符串或其他字符串替换 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 我想用下划线替换冒号,就像您通过 name.replaceAll("[^/./\:*?\"<>|]", "_"); 所做的那样,因此存储在数据库中的结果名称将是 School project _ 123

这甚至可以通过注释(包括 replaceAll() 那里)或者我在这里问错问题了吗?

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