vaadin JPAcontainer和嵌套属性问题

时间:2011-06-01 09:04:09

标签: containers vaadin bean-validation nested-properties

我有实体ExchangeRate {date,currencyFrom,rate}。实体currencyFrom具有属性代码和名称。我将它添加到容器addNestedContainerProperty(“currencyFrom.code”);  它没有问题,代码显示在vaadin表中。

现在我创建BeanValidationForm并将此字段添加到它。它崩溃是因为BeanValidationValidator它试图找到currencyFrom.code的getter并在ExchangeRate中查找方法getCurrencyFrom.code。

  1. 怎么了?如何在表单上使用嵌套属性字段来显示某些信息。

  2. 可以修改ExchangeRate嵌套属性吗?

1 个答案:

答案 0 :(得分:1)

答案在那里:vaadin forum

  
      
  1. BeanValidationForm假设所有属性都在主bean类中 - 它对JPAContainer或嵌套属性一无所知。请注意,JSR-303 bean验证注释可以直接从bean类访问,而不是通过容器访问。
  2.         

    要解决这个问题,必须为每个创建的BeanValidationValidator提供正确的bean类 - 覆盖BeanValidationForm.addField()并将正确的bean类提供给BVV.addValidator(),或直接使用BVV而不是使用帮助程序类BeanValidationForm。

         
        
    1. 应该是可能的(至少在适当的级联设置下) - 但如果您对嵌套实例的类有单独的EntityProviders,如果您只将嵌套实体保存为主实体的一部分,则不会通知它们更改。
    2.