Mapstruct -Wert aus der Quelle extrahieren, return als ZielwertJava

Java-Forum
Anonymous
 Mapstruct -Wert aus der Quelle extrahieren, return als Zielwert

Post by Anonymous »

Mapstruct kann einen einfachen Wert annehmen und auf das Feld eines Zielobjekts einstellen.

Code: Select all

import com.example.pixel_user_api.data.entity.EmailData;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;

@Mapper
public interface EmailMapper {
@Mapping(source = "email", target = ".")
String toString(EmailData emailData); // doesn't work

@Mapping(source = ".", target = "email")
EmailData toEmailData(String email); // works
}
< /code>
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class EmailData {
private Long id;
private String email;
}
< /code>
Hier ist das, was das Mapstruct generiert hat: < /p>
    @Override
public String toString(EmailData emailData) {
if ( emailData == null ) {
return null;
}

String string = new String();

return string;
}

@Override
public EmailData toEmailData(String email) {
if ( email == null ) {
return null;
}

EmailData emailData = new EmailData();

emailData.setEmail( email );

return emailData;
}
Während ToString (EmailData) ist unkompliziert, sich selbst zu implementieren (

Code: Select all

return emailData.getEmail()
), ich bin neugierig: Kann ich auch die erste Methode machen, um zu arbeiten?import com.example.pixel_user_api.mapper.EmailMapper;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;

import static org.assertj.core.api.Assertions.assertThat;

class EmailDataTest {

@Test
void testMapper() {
String expectedEmail = "example@mail.com";
EmailData emailData = new EmailData();
emailData.setEmail(expectedEmail);
EmailMapper mapper = Mappers.getMapper(EmailMapper.class);
String actualEmail = mapper.toString(emailData);
assertThat(actualEmail).isEqualTo(expectedEmail); // fails here
}
}
< /code>
org.opentest4j.AssertionFailedError:
expected: "example@mail.com"
but was: ""
Expected :"example@mail.com"
Actual :""
< /code>
Java 17, MapStruct 1.6.3

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post