Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX和与JPA实体的数据绑定_Java - Fatal编程技术网

JavaFX和与JPA实体的数据绑定

JavaFX和与JPA实体的数据绑定,java,Java,正如问题所说,我想知道执行到JPA实体的常规(非JavaFX)属性的数据绑定的最简单方法。 我在想,如果让实体类实现一些用于更改侦听器的接口或类似的东西,可能有某种方法可以使用相同的绑定函数 下面是一个带有属性更改侦听器的JPA实体的示例 @Entity public class Ticket { @Id @GeneratedValue() private int id; @ManyToOne() private EntryGate entryGate

正如问题所说,我想知道执行到JPA实体的常规(非JavaFX)属性的数据绑定的最简单方法。 我在想,如果让实体类实现一些用于更改侦听器的接口或类似的东西,可能有某种方法可以使用相同的绑定函数

下面是一个带有属性更改侦听器的JPA实体的示例

@Entity
public class Ticket {

    @Id
    @GeneratedValue()
    private int id;

    @ManyToOne()
    private EntryGate entryGate;

    @ManyToOne()
    private ExitGate exitGate;

    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);

    public Ticket() {
    }

    public Ticket(EntryGate owner) {
        this();
        this.entryGate = owner;
    }

    public void addListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }

    public int getId() {
        return id;
    }

    public EntryGate getEntryGate() {
        return entryGate;
    }

    public void setEntryGate(EntryGate entryGate) {
        EntryGate oldGate = this.entryGate;
        this.entryGate = entryGate;
        changeSupport.firePropertyChange("entryGate", oldGate, this.entryGate);
    }

    public ExitGate getExitGate() {
        return exitGate;
    }

    public void setExitGate(ExitGate exitGate) {
        ExitGate oldGate = this.exitGate;
        this.exitGate = exitGate;
        changeSupport.firePropertyChange("exitGate", oldGate, this.exitGate);
    }
}
下面是一个JavaFX属性绑定的示例。 this.idLabel.textProperty().bind(this.ticket.idProperty().asString())


显然,我不能用SimplexxProperty替换我的JPA属性。。。因为它们是参与对象关系映射的实体。

“我在想,如果让实体类实现一些用于更改侦听器的接口或诸如此类的东西,可能有某种方法可以使用相同的绑定函数。”-是的,只有我可能会建议实现ObjectProperty或扩展SimpleObjectProperty类,以便您可以直接使用property函数。@RyanJ在C#中就是这样做的,您能详细说明如何将JavaFX属性绑定到POJO属性吗?我在任何地方都找不到足够的信息。请签出。@RyanJ如果您有一个列表属性,您想绑定该属性的大小,则该答案不适用于这种情况,因为只有列表会引发属性更改通知,而不是它的大小。。。在这种情况下,您会怎么做。您必须单独绑定列表中的每个属性,并且可以使用列表内容更改属性来确定列表内容何时更改(如果有更改的话),以便可以相应地进行绑定。