Мне нужно сопоставить открытый банковский класс с моим основным классом. Я работаю с mapstruct
. Мне нужно сопоставить несколько полей перечисления с одним в моем основном классе. Но я думаю, что mapstruct не поддерживает сопоставление нескольких полей. Любой хитрый способ или решение для этого? Заранее спасибо! Вот мои значения перечисления из открытого банкинга:
public enum Category {
TRANS_AND_SAVINGS_ACCOUNTS("TRANS_AND_SAVINGS_ACCOUNTS"),
REGULATED_TRUST_ACCOUNTS("REGULATED_TRUST_ACCOUNTS"),
CRED_AND_CHRG_CARDS("CRED_AND_CHRG_CARDS"),
PERS_LOANS("PERS_LOANS"),
MARGIN_LOANS("MARGIN_LOANS"),
PROPERTY_LOANS("PROPERTY_LOANS"),
TRADE_FINANCE("TRADE_FINANCE"),
OVERDRAFTS("OVERDRAFTS"),
BUSINESS_LOANS("BUSINESS_LOANS"),
RESIDENTIAL_MORTGAGES("RESIDENTIAL_MORTGAGES");
...
}
И вот мой основной класс:
public enum Type{
CHARGES( "Charges" ),
CREDITS( "Credits" ),
ALL_LOANS( "AllLoans" ),
MORTGAGE( "Mortgage" ),
OTHER( "Other" ),
PREPAIDCARD( "PrePaidCard" ),
SAVINGS( "Savings" );
...
}
И у меня есть valueMapping
следующим образом (что неверно):
public interface TypeMapper {
@ValueMappings( {
@ValueMapping(source = "CHARGES", target= "CRED_AND_CHRG_CARDS"),
@ValueMapping(source = "CREDITS", target= "CRED_AND_CHRG_CARDS"),
@ValueMapping(source = "ALL_LOANS", target = "PERS_LOANS"),
@ValueMapping(source = "ALL_LOANS", target = "MARGIN_LOANS"),
@ValueMapping(source = "ALL_LOANS", target = "BUSINESS_LOANS"),
@ValueMapping(source = "ALL_LOANS", target = "PROPERTY_LOANS"),
@ValueMapping(source = "MORTGAGE", target= "RESIDENTIAL_MORTGAGES"),
@ValueMapping(source = "OTHER", target= "OVERDRAFTS"),
@ValueMapping(source = "PREPAIDCARD", target = MappingConstants.NULL),
@ValueMapping(source = "SAVINGS", target = "TRANS_AND_SAVINGS_ACCOUNTS")
} )
...
}
Он не принимает сопоставление PERS_LOANS("PERS_LOANS"), MARGIN_LOANS("MARGIN_LOANS"), PROPERTY_LOANS("PROPERTY_LOANS")
с ALL_LOANS
. Интересно, есть ли способ сопоставить все 3 с одним полем. Может быть, это может быть освещено в @AfterMapping
, есть предложения? И я хочу сопоставить все несопоставленные значения с OTHER
в моем основном классе.
source
иtarget
? Вы пытаетесь сопоставить ALL_LOANS с 4 разными целями.. - person Sjaak   schedule 05.09.2020@ValueMappings
в java8, что сделает ваше отображение (немного) более компактным - person Sjaak   schedule 05.09.2020