0
我目前使用MapStruct將數據傳輸對象(DTO)映射到實體,反之亦然。我注意到最新的穩定版本沒有提供用於檢測週期的「開箱即用」功能,但是RC1版本與@Context
註釋一起提供。映射和限制對象映射的深度
目前,MapStruct的效果很好,但由於這些DTO和實體在這個應用程序中設置的方式,它可能會將對象映射到不必要的深度(有時它會映射數據庫的重要部分一個對象)。
我目前使用MapStruct將數據傳輸對象(DTO)映射到實體,反之亦然。我注意到最新的穩定版本沒有提供用於檢測週期的「開箱即用」功能,但是RC1版本與@Context
註釋一起提供。映射和限制對象映射的深度
目前,MapStruct的效果很好,但由於這些DTO和實體在這個應用程序中設置的方式,它可能會將對象映射到不必要的深度(有時它會映射數據庫的重要部分一個對象)。
「開箱即用」支持很可能意味着您必須在MapStruct上擁有運行時依賴項。我們不想這樣做,因此@Context
已被添加到下一個1.2.0
版本。
爲了避免不必要的映射,您必須明確使用@Mapping(ignore = true)
和相應的target
或source
。
還有一個功能請求#1152,這將允許用戶顯式阻止訪問被訪問,因此總是被忽略。與傑克遜相似的東西@JsonIgnore
。
我們在麻煩的屬性上實現了'@Mapping(target =「...」,ignore = true),但應用程序的某些部分仍然需要一些被忽略的Entity/Dto屬性。這是一種解決方法,但並未真正解決問題。 – unjankify
您可以定義不會忽略那些屬性的不同映射器/方法。什麼可以解決你的問題? – Filip