0

我将几个文本字段绑定到使用 Vaadin 14 和 JPA/Hibernate 的 IDE Rapidclipse 中的一个实体。目的是将按钮单击时的输入数据写入定义为数据源的引用数据库。我已经找到了这个文档 手动写作。所以我对此的理解是这样的:首先我需要创建一个实体的新bean(Test test = new Test())。然后所有输入数据都应该分配给 bean( binder.writeBean(test)) 的属性。就文档而言。但是如何将数据插入到我的数据库中的实体表中呢?我需要 TestDAO 课程吗?

在以前的 Rapidclipse 版本中使用的 Vaadin 7 中,它的工作方式如下:

fieldGroup.setItemDatasource(new Test());
...
fieldgroup.save()
4

1 回答 1

2

Binder用于将 a 的属性绑定Bean到 UI 中显示的表单(例如 TextFields)。所以当你在做这样的事情时如何绑定表单数据

Binder<Person> binder = new Binder<>(Person.class);

TextField titleField = new TextField();

// Start by defining the Field instance to use
binder.forField(titleField)
        // Finalize by doing the actual binding
        // to the Person class
        .bind(
                // Callback that loads the title
                // from a person instance
                Person::getTitle,
                // Callback that saves the title
                // in a person instance
                Person::setTitle);

您确切地说titleField显示了一个人的头衔。与数据库持久性Binder无关/不负责。在您链接的文档中,在所有示例中都有与此类似的行: MyBackend.updatePersonInDatabase(person);. 将对象持久化到底层数据库是开发人员的责任。Flow 是一个 UI 框架,这就是您可以自由选择数据库提供商/技术的原因。

关于 Vaadin 7,您在哪里找到了示例?save我在FieldGroupFieldGroup API上找不到方法

也许有人扩展了它并添加了所需的功能?

因此,例如,如果您正在使用 hibernate 沿着这条线的东西:

session.save(emp);将您的对象插入数据库。取自这里:Hibernate 插入查询教程

其他一些有用的链接:

于 2019-10-11T06:45:26.403 回答