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;
}