gpt4 book ai didi

java - 哪些变量在 JavaFX/Hibernate 应用程序中使用

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:51 26 4
gpt4 key购买 nike

假设我们有一个 Entity/Class Person,我想将其填充到 JavaFX 组件的 TableView 中。

我应该填充 Person 类的什么类型的数据 - StringSimpleStringProperty

在这两种情况下,我都没有完全得到我想要的。如果我将使用 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
}

最佳答案

使用 StringProperty,并确保 Hibernate 通过 get/set 方法访问属性,而不是通过字段本身。 (这指的是使用“属性访问”,而不是“字段访问”。)如果您确保所有注释都放在方法上,而不是字段上,这将自动发生,或者您可以使用 @Access(AccessType.PROPERTY) 使其显式化:

@Entity
@Access(AccessType.PROPERTY)
public class Person {

private final StringProperty name = new SimpleStringProperty();
private final StringProperty surname = new SimpleStringProperty();

@Column("name") // not needed, just illustrating the annotations, if needed, go here
public String getName() {
return nameProperty().get();
}

public void setName(String name) {
nameProperty().get(name);
}

public StringProperty nameProperty() {
return name ;
}

// etc...
}

参见 http://svanimpe.be/blog/properties-jpa.html进行完整的讨论。

关于java - 哪些变量在 JavaFX/Hibernate 应用程序中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46100813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com