【问题标题】:Vaadin UI does not refreshVaadin UI 不刷新
【发布时间】:2015-02-24 16:10:53
【问题描述】:

我有代表员工的模型。它有一个字段(比如说薪水),它也是一个模型。所以基本上它是一个嵌套属性。我使用 Hibernate、JPAcontainer 和 MasterDetailEditor 来可视化数据。所以我扩展了 FieldFactory 以便能够向薪水的选择字段添加值更改侦听器。此更改设置了薪水的税款字段。

它正在工作,数据在数据库中更新,但在 UI 上,不是。我在启用 Push 和 pollInterval 的情况下尝试过,它们似乎都不起作用。我通过它的属性设置值。

代码:

这是在被覆盖的 createField 中

    final AbstractField field = (AbstractField) super.createField(container, itemId, propertyId, uiContext);
        field.setImmediate(true);

        field.addValueChangeListener(new Property.ValueChangeListener() {
            @Override
            public void valueChange(ValueChangeEvent event) {

                final Item item = container.getItem(itemId);
                final String salaryTypeSelectorValue =
                        item.getItemProperty(propertyName).getValue().toString() != null ? item.getItemProperty(propertyName).getValue()
                                .toString() : REGULAR;

                                if (REGULAR.equals(salaryTypeSelectorValue)) {

                                    final SalaryHistory salaryHistory = ((JPAContainer<SalaryHistory>) container).getItem(itemId).getEntity();

                                    JPAContainer<SalaryHistory> salaryHistoryContainer = (JPAContainer<SalaryHistory>) container;

                                    salaryHistoryContainer.getItem(itemId).getItemProperty("socialTax").setValue(new BigDecimal("28.5"));                                     
                                }
            }
        });         

        return field; 

更新

我设法实现了我想要的,也许这有点 hacky,因为我必须在薪水模型中加入一个小逻辑:在薪水类型的设置器中,我也设置了税,并且 UI 立即更新。

【问题讨论】:

  • 我的猜测是,jpacontainer 拥有一个缓存并更改其中某处的值将传播到表中。你试过把桌子弄脏吗?
  • 我会试试的。谢谢。我忘了提到使用了 JPAContainerFactory.makeNonCached 并且立即模式为 true 并且禁用了缓冲。
  • 如果您自己解决了问题,请在帖子中添加答案(稍后接受)。其他用户更容易识别可能的解决方案并看到问题已解决。谢谢!

标签: hibernate user-interface push vaadin jpacontainer


【解决方案1】:

感谢 Jan 通知我 :) 我设法实现了我想要的,也许这有点 hacky,因为我必须在工资模型中加入一个小逻辑:在工资类型的设置器中,我也设置了税UI 立即更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多