2017-08-09 117 views
0

我目前使用MapStruct將數據傳輸對象(DTO)映射到實體,反之亦然。我注意到最新的穩定版本沒有提供用於檢測週期的「開箱即用」功能,但是RC1版本與@Context註釋一起提供。映射和限制對象映射的深度

目前,MapStruct的效果很好,但由於這些DTO和實體在這個應用程序中設置的方式,它可能會將對象映射到不必要的深度(有時它會映射數據庫的重要部分一個對象)。

回答

0

「開箱即用」支持很可能意味着您必須在MapStruct上擁有運行時依賴項。我們不想這樣做,因此@Context已被添加到下一個1.2.0版本。

爲了避免不必要的映射,您必須明確使用@Mapping(ignore = true)和相應的targetsource

還有一個功能請求#1152,這將允許用戶顯式阻止訪問被訪問,因此總是被忽略。與傑克遜相似的東西@JsonIgnore

+0

我們在麻煩的屬性上實現了'@Mapping(target =「...」,ignore = true),但應用程序的某些部分仍然需要一些被忽略的Entity/Dto屬性。這是一種解決方法,但並未真正解決問題。 – unjankify

+0

您可以定義不會忽略那些屬性的不同映射器/方法。什麼可以解決你的問題? – Filip