【发布时间】:2018-02-16 10:55:54
【问题描述】:
假设我们有一个Entity/Class Person,我想将其填充到 JavaFX 组件的 TableView 中。
我应该填充什么类型的数据 Person 类 - String 或 SimpleStringProperty?
在这两种情况下,我都没有完全得到我想要的。如果我将使用 String 变量,我将无法听到我的 TableView 中所做的任何更改(根据clickMe 的帖子)。另一方面,如果我将使用SimpleStringProperty,我将得到一个异常,即hibernate 无法将SimpleStringProperty 转换为字符串,这是数据库中使用的类型。怎样才能做得更巧妙?
@Entity
public Person {
private String name; // or SimpleStringProperty
private String Surname; // or SimpleStringProperty
// getter and setters removed to simplify example
}
【问题讨论】:
-
在 Hibernate 中使用
StringProperty并使用属性访问(不是字段访问)。 svanimpe.be/blog/properties-jpa.html -
你可以告诉 Hibernate 如何将 SimpleStringProperty 变成字符串?见stackoverflow.com/questions/45869207/…和stackoverflow.com/questions/34048978/…
-
@Jeutnarg 这看起来有点矫枉过正。只需确保它使用
get/set方法,而不是尝试直接设置字段。 -
@James_D 是否可以与 SimpleStringProperty 一起使用(它具有 get/setValue,而不是 get/set)?如果是这样,您能否链接一些内容来说明如何告诉属性访问使用 getValue 和 setValue 方法?
-
@Jeutnarg 我假设 OP 遵循标准模式,即
public StringProperty nameProperty()、public String getName()、public void setName(String name)。