gpt4 book ai didi

java - 从实体映射到 DTO 时,ModelMapper 在 DTO 字段中返回 Null

转载 作者:行者123 更新时间:2023-12-02 00:56:34 25 4
gpt4 key购买 nike

从实体对象映射到 Dto 时,ModelMapper 在我的 DTO 字段中返回 null。有人请解释一下为什么我收到回复。

TestEntity

@Data
@Entity
@Table(name="TestEntity")
public class TestEntity {
@Id
@Column(name="id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;

@Column(name="test_name")
private String test_name;
}

TestEntityDto

@Data
public class TestEntityDto {

private long id;
private String test_name;
}

测试服务

@Service
public class TestService {

@Autowired
TestEntityRepo testEntityRepo;

public TestEntityDto getAllTestList() {
List<TestEntity> testEntity= testEntityRepo.findAll();
ModelMapper mapper = new ModelMapper();
TestEntityDto testEntityDto = mapper.map(TestEntity.class, TestEntityDto.class);

return testEntityDto;
}
}

实际结果:

{
"id": 0,
"test_name": null
}

预期结果:

{
"id": 1,
"test_name": "Test"
}

最佳答案

您正在尝试映射List<TestEntity>TestEntityDto这是错误的。尝试为每个 TestEntity 进行映射使用 ModelMapper 并创建 TestEntityDto 列表.

public List<TestEntityDto> getAllTestList() {

List<TestEntity> testEntity= testEntityRepo.findAll();
List<TestEntityDto> testEntityDtos = new ArrayList<TestEntityDto>();
ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
for(TestEntity perTestEntity :testEntity){
TestEntityDto testEntityDto = mapper.map(perTestEntity , TestEntityDto.class);
testEntityDtos.add(testEntityDto);
}
return testEntityDtos;

}

关于java - 从实体映射到 DTO 时,ModelMapper 在 DTO 字段中返回 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61290848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com