class UserSettingEntity extends GenericEntity<String> {

    @Schema(description = "用户ID", hidden = true)
    @Column(length = 64, nullable = false, updatable = false)
    @Length(max = 64, groups = CreateGroup.class)
    private String userId;

    @Schema(description = "配置类型,如: search")
    @Column(length = 64, nullable = false, updatable = false)
    @Length(max = 64, groups = CreateGroup.class)
    private String type;

    @Schema(description = "配置key,如: user-search")
    @Column(length = 64, nullable = false, updatable = false)
    @Length(max = 64, groups = CreateGroup.class)
    private String key;

    @Schema(description = "配置名称")
    @Column(length = 128)
    @Length(max = 128)
    private String name;

    @Schema(description = "配置说明")
    private String description;

    @Schema(description = "配置内容")
    @Column
    @ColumnType(jdbcType = JDBCType.LONGVARCHAR, javaType = String.class)
    private String content;

    @Column(updatable = false, nullable = false)
    @DefaultValue(generator = Generators.CURRENT_TIME)
    @Schema(description = "创建时间", accessMode = Schema.AccessMode.READ_ONLY)
    private Long createTime;

    @Override
    public String getId() {
        if (!StringUtils.hasText(super.getId())) {
            generateId();
        }
        return super.getId();
    }

    public String generateId() {<FILL_FUNCTION_BODY>}

    public static String generateId(String userId, String type, String key) {
        return DigestUtils.md5Hex(String.join("|", userId, type, key));
    }
}

        String id;
        setId(id = generateId(userId, type, key));
        return id;
    
<no_super_class>