我在我的bean中有與StringProperty相同的問題。 @remigio的答案幫助我找到了解決方案。
所以我加入轉爐廠:
public class StringPropertyToStringConverterFactory
implements ConverterFactory<StringProperty, String> {
@Override
public <T extends String> Converter<StringProperty, T> getConverter(final Class<T> type) {
return new StringPropertyToStringConverter<>();
}
private final class StringPropertyToStringConverter<E extends StringProperty, S extends String>
implements Converter<E, S> {
@Override
public S convert(final E s) {
if (s != null) {
return (S) s.getValue();
} else {
return null;
}
}
}
}
public class StringToStringPropertyConverterFactory
implements ConverterFactory<String, StringProperty> {
@Override
public <T extends StringProperty> Converter<String, T> getConverter(final Class<T> type) {
return new StringToStringPropertyConverter<>();
}
private final class StringToStringPropertyConverter<S extends String, E extends StringProperty>
implements Converter<S, E> {
@Override
public E convert(final S s) {
if (s != null) {
return (E) new SimpleStringProperty(s);
} else {
return null;
}
}
}
}
然後我註冊在我的Neo4jConfiguration這些轉換器工廠:
public class AppConfig extends Neo4jConfiguration {
public AppConfig() {
setBasePackage("org.foo.bar");
addConversionService();
}
private void addConversionService() {
ConversionServiceFactoryBean conversionService = new ConversionServiceFactoryBean();
conversionService.setConverters(
newHashSet(new StringPropertyToStringConverterFactory(),
new StringToStringPropertyConverterFactory()));
conversionService.afterPropertiesSet();
setConversionService(conversionService.getObject());
}
}
我不喜歡的是,我不得不調用該方法afterPropertiesSet()
。也許有一種更優雅的方式。但畢竟它的工作,並保存屬性。
感謝您的快速響應。我將發佈功能請求。 :) – DrEnquinox
對於閱讀本條目的其他人,我在此發佈了一個功能請求:[JIRA](https://jira.springsource.org/browse/DATAGRAPH-315) – DrEnquinox
我發現neo4j和javafx非常易於使用,沒有任何ORM。如果它阻止你的工作,可能是一個想要把春天澆水的想法。 –