Properties db4o不会使用javafx保存更新

Properties db4o不会使用javafx保存更新,properties,javafx,db4o,Properties,Javafx,Db4o,前言:我经常提到这些董事会,但这是我的第一个问题。我感谢这些董事会提供的丰富信息。因此,提前感谢您的帮助 我有一个JavaFX应用程序,我正在使用db4o来支持我的数据。问题如下: Person.java class Person implements Activatable { private StringProperty name = new SimpleStringProperty(); ... public String getName() {

前言:我经常提到这些董事会,但这是我的第一个问题。我感谢这些董事会提供的丰富信息。因此,提前感谢您的帮助

我有一个JavaFX应用程序,我正在使用db4o来支持我的数据。问题如下:

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

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

    ...
}
遵循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;
    }

    ...
}
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将使用适当的存储和后续提交调用正确存储数据。但是,如果我更新任何已存储的对象,然后尝试通过“存储”更新它们,则不会保存更新的数据

我有透明的持久性/激活功能。我做了人工注射。我知道它起作用了,因为如果我做了以下事情:

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

    ...
}
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无法更新javafxbean属性吗?还是我遗漏了什么?

你能确认你有setName。。。还有getName方法和nameProperty?是的,我会更新以反映。好的,我想我会问“它是否插入”问题。。。我没有使用过db4o;我曾与JavaFX属性和JPA以及。看看这是否有帮助。你写的关于属性的“超级懒惰”实现的文章可能会解决我的问题。我会试试看,然后再打给你。谢谢,詹姆斯。我很想知道这是否有效。。。