我們使用JPA實體來獲取數據庫行,然後當我們將其傳遞給外部時,我們想要使用斷開連接的對象(DTO),這是使用JAX-B註釋的簡單bean。爲什麼從JPA實體向JAX-B Bean使用BeanUtils.copyProperties似乎不可能?
我們用一個映射,與它的代碼看起來是這樣的:
public BillDTO map(BillEntity source, BillDTO target) {
BeanUtils.copyProperties(source, target);
return target;
}
但代碼運行時,我們得到這樣一個錯誤:
java.lang.IllegalArgumentException: argument type mismatch
注意這是Spring實現的BeanUtils:
import org.springframework.beans.BeanUtils
和屬性的命名是相同的(與他們的getter/setter)。
任何人都知道錯誤發生的原因以及如何使用快速方法而不是逐個複製屬性?
郵政完整的堆棧跟蹤,並添加BillDTO'或'BillEntity' – Ilya
嗨'代碼,你指出正確的方式,其實我發現爲什麼沒有做的工作:在一個DTO是財產的在實體中,它是一個字符串。即使我在DTO中添加了一個新的setter,但它使用了一個String,它不起作用。 –