8
隨着我的數據模型(基本上是一個帶有父項子項的樹),Dozer在解釋一個字段(使用接口類型作爲參數)是一個類,並試圖用一個構造函數來實例化它。這導致以下例外;推土機試圖將一個類映射到它的接口
ERROR [MappingProcessor] - Field mapping error -->
MapId: null
Type: null
Source parent class: com.*.shared.model.Module
Source field name: parent
Source field type: class com.*.shared.model.Datawarehouse
Source field value: com.*[email protected]
Dest parent class: com.*.shared.model.Module
Dest field name: parent
Dest field type: com.*.shared.model.Model
org.dozer.MappingException: java.lang.NoSuchMethodException: com.*.shared.model.Model.<init>()
這是一個相同的級映射,雖然推土機正確地標識在源類的父字段爲類型數據倉庫的,因爲其父Module類的集方法使用模型接口作爲其參數,它似乎試圖實例化Model的類型,因爲Model是一個沒有構造函數的接口,而不是Datawarehouse,因爲它是源類字段指示的。
我知道如何使用bean-factories來改變標準的映射行爲,但我很驚訝這是解決這個問題的唯一方法。在我看來,Dozer已經擁有了它所需要的信息,因爲它標識了源類的類型,對我來說它不尋常,它會嘗試實例化由setter的簽名指定的接口,而不是它試圖映射的類型。
有什麼建議嗎?
您是否有與此類相關的推土機配置? – OmegaZiv