Java 如何使用Spring数据Neo4j保存Spring Security BasePermission

Java 如何使用Spring数据Neo4j保存Spring Security BasePermission,java,spring,spring-security,neo4j,spring-data-neo4j,Java,Spring,Spring Security,Neo4j,Spring Data Neo4j,我需要保存BasePermission的子类,它是 @NodeEntity public class ExtendedPermission extends BasePermission{ /** * */ private static final long serialVersionUID = 1L; public static final Permission READ = new ExtendedPermission(1 <<

我需要保存
BasePermission
的子类,它是

@NodeEntity
public class ExtendedPermission  extends BasePermission{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;


    public static final Permission READ = new ExtendedPermission(1 << 0, 'R'); // 1
    public static final Permission WRITE = new ExtendedPermission(1 << 1, 'W'); // 2
    public static final Permission CREATE = new ExtendedPermission(1 << 2, 'C'); // 4
    public static final Permission DELETE = new ExtendedPermission(1 << 3, 'D'); // 8
    public static final Permission ADMINISTRATION = new ExtendedPermission(1 << 4, 'A'); // 16

    @GraphId
    private Long id;

    public ExtendedPermission() {
         super(0);
    }

    protected ExtendedPermission (int mask) {
        super(mask);
    }

    protected ExtendedPermission (int mask, char code) {
        super(mask, code);
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

}
现在
BasePermission
code
char
那么为什么它被解释为
Character

此外,我写的试图克服这个问题的转换器没有被调用

public class CharToStringConvertor implements Converter<Character,String>{

    @Override
    public String convert(Character source) {
        return String.valueOf(source);
    }

}

public class StringToCharConverter implements Converter<String,Character> {

    @Override
    public Character convert(String source) {
        return source.toCharArray()[0];
    }

}
其他转换器按预期的方式注册,但未调用图表显示和反之亦然

public class CharToStringConvertor implements Converter<Character,String>{

    @Override
    public String convert(Character source) {
        return String.valueOf(source);
    }

}

public class StringToCharConverter implements Converter<String,Character> {

    @Override
    public Character convert(String source) {
        return source.toCharArray()[0];
    }

}
@Bean
    protected ConversionService neo4jConversionService() throws Exception {
        ConversionService conversionService = super.neo4jConversionService();
        ConverterRegistry registry = (ConverterRegistry) conversionService;

        registry.removeConvertible(Date.class, String.class);
        registry.removeConvertible(String.class, Date.class);
        registry.removeConvertible(String.class, Character.class);
        registry.removeConvertible(Character.class,String.class);
        // add converters
        registry.addConverter(new DateTimeToStringConverter());
        registry.addConverter(new StringToDateTimeConverter());
        registry.addConverter(new StringToCharConverter());
        registry.addConverter(new CharToStringConvertor());
        return conversionService;
    }