前言:我经常光顾这些电路板,但这是我的第一个问题。我很欣赏这些板上的大量信息。所以,请提前感谢您的帮助。
我有一个JavaFX应用程序,我使用db4o来备份我的数据。问题如下:
遵循JavaFX属性语法,我们有类如下所示的类:
Person.java
class Person implements Activatable {
private StringProperty name = new SimpleStringProperty();
...
public String getName() {
return name.get();
}
public void setName(String name) {
this.name.set(name);
}
public StringProperty nameProperty() {
return name;
}
...
}
db4o将使用适当的store()和后续的commit()调用正确存储数据。但是,如果我更新已存储的任何对象,然后尝试更新它们(通过存储),则不会保存更新的数据。
我有透明的持久性/激活工作。我做了手动注射。我知道它有效,因为如果我做以下事情:
Person.java
class Person implements Activatable {
private String name;
...
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public StringProperty nameProperty() {
return new SimpleStringProperty(name);
}
...
}
然后正确添加,更新和保存所有内容。我不能使用这种方法的唯一原因是因为属性监听器(即,更改或失效)不适用于这种方法。
有人说,有人知道为什么db4o无法更新JavaFX bean属性吗?或者我错过了什么?