2011-06-01 21 views
0

我有實體ExchangeRate {date,currencyFrom,rate}。實體currencyFrom具有屬性代碼和名稱。我將它添加到容器addNestedContainerProperty(「currencyFrom.code」); 它工作正常,代碼顯示在vaadin表中。vaadin JPA容器和嵌套屬性問題

現在我創建BeanValidationForm並將其添加到它。它因爲BeanValidationValidator而崩潰,它試圖爲currencyFrom.code找到getter並在ExchangeRate中查找getCurrencyFrom.code方法。

  1. 怎麼了?我如何使用窗體上的嵌套屬性字段來顯示一些信息。

  2. 可以修改ExchangeRate嵌套屬性嗎?

+0

答案在那裏:http://vaadin.com/forum/-/message_boards/view_message/483013 – Vlada 2011-06-01 11:42:44

回答

1

答案是有:vaadin forum

  1. BeanValidationForm假定所有屬性都在主bean類 - 它不知道JPAContainer或嵌套性東西。請注意,JSR-303 bean驗證註釋可直接從bean類訪問,而不是通過容器訪問。

要解決這個問題,你必須給正確的bean類創建的每個BeanValidationValidator - 無論是覆蓋BeanValidationForm.addField(),並給出正確的bean類BVV.addValidator(),或者使用直接BVV,而不是使用輔助類BeanValidationForm。

  1. 應該可以(至少有合適的級聯設置) - 但如果你有該類的嵌套實例單獨EntityProviders,他們沒有收到通知的變化,如果你只嵌套實體保存爲的一部分主要實體。