第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在模型映射器中跳過目標源中的屬性?

如何在模型映射器中跳過目標源中的屬性?

慕田峪7331174 2024-01-05 11:01:38
我有兩節(jié)課。請求DTO和實體。我想將 RequestDTO 映射到實體。在這種情況下,我想手動插入實體屬性之一,這意味著該屬性不在請求 DTO 中。如何使用 modelmapper 來實現這一點。public class RequestDTO {    private String priceType;    private String batchType;}public class Entity {    private long id;    private String priceType;    private String batchType;}Entity newEntity = modelMapper.map(requestDto, Entity.class);但這不起作用,它說它不能將字符串轉換為長整型。我請求對此的解決方案或更好的方法。
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

如果您想手動執(zhí)行映射(特別適合不同的對象)

您可以查看不同對象映射屬性映射的文檔,

您可以通過使用方法引用來匹配源 getter 和目標 setter 來定義屬性映射。

typeMap.addMapping(Source::getFirstName,?Destination::setName);

源類型和目標類型不需要匹配。

?typeMap.addMapping(Source::getAge,?Destination::setAgeString);

如果您不想逐個字段進行映射以避免樣板代碼

您可以配置跳過映射器,以避免將某些字段映射到目標模型:

modelMapper.addMappings(mapper?->?mapper.skip(Entity::setId));

我已經為您的案例創(chuàng)建了一個測試,映射適用于雙方,無需配置任何內容

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import org.junit.Before;

import org.junit.Test;

import org.modelmapper.ModelMapper;


import static junit.framework.TestCase.assertEquals;

import static junit.framework.TestCase.assertNotNull;


public class ModelMapperTest {


? ? private ModelMapper modelMapper;


? ? @Before

? ? public void beforeTest() {

? ? ? ? this.modelMapper = new ModelMapper();

? ? }


? ? @Test

? ? public void fromSourceToDestination() {

? ? ? ? Source source = new Source(1L, "Hello");

? ? ? ? Destination destination = modelMapper.map(source, Destination.class);

? ? ? ? assertNotNull(destination);

? ? ? ? assertEquals("Hello", destination.getName());

? ? }


? ? @Test

? ? public void fromDestinationToSource() {

? ? ? ? Destination destination = new Destination("olleH");

? ? ? ? Source source = modelMapper.map(destination, Source.class);

? ? ? ? assertNotNull(source);

? ? ? ? assertEquals("olleH", destination.getName());

? ? }

}


@Data

@NoArgsConstructor

@AllArgsConstructor

class Source {

? ? private Long id;

? ? private String name;

}


@Data

@NoArgsConstructor

@AllArgsConstructor

class Destination {

? ? private String name;

}


查看完整回答
反對 回復 2024-01-05
  • 1 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號