Spock在内存中实现mapstruct在映射器中的自动连接
嗨,我想在没有H2的内存实现中测试某些方法. 在usermapper的inth中,我有. 当我尝试运行测试时,我对此passwordencodermapper具有NullPoInterException. 我如何像第一次屏幕截图(authservice)一样注入自动射击,而没有加载弹簧上下文( @springboottest ). 解决方案 passwordEncoderMapper passwordEncoderMapper的原因是因为您将Spring componentModel与Mappers#getMapper混合.你不应该那样做. 使用自定义componentModel时,应始终使用该依赖项注入来获取映射. 您可以为测试做什么是与InjectionStrategy#CONSTRUCTOR一起使用Mapper#injectionStrategy,然后通过提供正确的依赖项来实例化映射器.
4 2023-11-07
编程技术问答社区
地图:嘲笑嵌套映射器
我使用Mapstruct映射我的实体,我正在使用Mockito嘲笑我的对象. 我想测试一种包含带有映射的映射的方法. 问题是嵌套映射器在我的单元测试中始终为无效(在应用程序中效果很好) 这是我的映射器声明: @Mapper(componentModel = "spring", uses = MappingUtils.class) public interface MappingDef { UserDto userToUserDto(User user) } 这是我的嵌套映射器 @Mapper(componentModel = "spring") public interface MappingUtils { //.... other mapping methods used by userToUserDto 这是我要测试的方法: @Service public class SomeClass{ @Autowired
2 2023-11-07
编程技术问答社区
如何为通过Spring注入的mapstruct抽象映射器编写Junit测试
我正在使用MAPSTRUCT,MAPSTRUCT-JDK8版本1.1.0.Final和定义的抽象类,我通过Spring注入. 我正在寻找如何通过JUNIT测试进行测试? 我基本上是一个主要的映射器,它将使用2个子映射器 @Mapper(componentModel = "spring", uses = {SubMapper1.class, SubMapper2.class}) public abstract class MainMapper { @Mapping(target = "field1", qualifiedByName = {"MyMapper2Name", "toEntity"}) public abstract MyEntity toEntity(MyDto pDto); public MyDto fromEntity(MyEntity pEntity) { // Specific code, hence why I use Abst
8 2023-11-07
编程技术问答社区
地图结构:当源为null时,目标不应设置为null
我正在尝试使用mapsstruct 1.2.0.cr2映射嵌套属性. (示例地图 customer.address.housenumber to userdto.homedto.addressdto.houseno ). 期望:我不想在customer.address为null时将地址设置为null.由于addressDto包含已经从其他不同来源设置的"县名"和其他属性. 请建议如果我可以设置属性/设置,以便在源为null时未设置为null的目标. @Mapper( nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS ) public interface CustomerUserMapperNullCheck { @Mapping(source="address", target="homeDTO.addressDTO" ) void mapCustomer(Customer customer,
16 2023-10-14
编程技术问答社区
延迟加载在使用hibernate的JPA中不起作用
我在春季启动应用程序中使用JPA与Hibernate一起使用.每当我尝试使用JPA方法获取敌人时,它将返回实体以及其中存在的所有关联.我想按需获取关联的实体(懒负载),因此我在域类中提供了fetch = fetchType.lazy.但是它仍然返回所有条目. 以下是代码: case.java @Entity @Table(name="smss_case") public class Case implements Serializable { /** * */ private static final long serialVersionUID = -2608745044895898119L; @Id @Column(name = "case_id", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY
16 2023-09-13
编程技术问答社区
架构领域模型和视图模型
我试图通过春季启动和域驱动设计来构建应用程序.我对域模型(与表DB的字段匹配)和查看模型(响应API)有问题. 域模型: ex: 类名称 @Getter @NoArgsConstructor @AllArgsConstructor class Name { String value; } 类产品 @Getter @NoArgsConstructor @AllArgsConstructor class Product{ Name name; } ViewModel: @Data @NoArgsConstructor @AllArgsConstructor class ProductView { //int prodId; String prodName; } 按类选择数据db 产品,构建器对 productView 的响应API.当那个从域模型转换为ViewModel,反之亦然,我在 ProductView 中写了静态方法. 它
10 2023-09-13
编程技术问答社区
Spring Tool Suite/Gradle/MapStruct-找不到映射器的实现
我已经搜索了Stackoverflow以找到我的问题的答案.虽然我找到了许多提供的解决方案,但在我的情况下都没有工作. 我必须将映射构造用于工作中的项目,因此我正在尝试通过我使用的是1.4.2.final而不是1.5.0.rc1,因为我在使用通过切换到前来解决的后者时遇到了不同的问题. 这是我代码的部分: build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.tutorialspoint' version = '2.4.2' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies {
12 2023-09-12
编程技术问答社区
Mapstruct返回类型
没有为返回类型org.springframework.data.data.data.page.page.page. 注册实现类型 @Mapper(componentModel = "spring", uses = { OptionalMapper.class, VehicleImageMapper.class, GearShiftMapper.class, FuelMapper.class, ColorMapper.class, ModelMapper.class, UserMapper.class }) public interface VehicleMapper { VehicleMapper INSTANCE = Mappers.getMapper(VehicleMapper.class); VehicleDTO vehicletoVehicleDTO(Vehicle vehicle); Page vehicleto
8 2023-09-12
编程技术问答社区
无法映射属性.考虑声明/实施映射方法.无法从不合时宜的类型中生成映射方法到迭代类型
我似乎无法正确使用映射 @Mapping(target = "products", source = "itemBookType") SearchBookingResult backToTp(ItemBook itemBook); 运行此代码时,我会收到以下错误: Can't map property "ProductType itemBookType" to "List products". Consider to declare/implement a mapping method: "List map(ProductType value)". 我在底部添加了以下代码: List map(ProductType value); ,但仍然会返回以下错误: Can't generate mapping method from non-iterable
18 2023-09-12
编程技术问答社区
如何使用MapStruct将String转换为Map?
我在春季启动应用程序中具有Story实体.它具有String字段storyInfo,其中包含: {"title":"random title", "description":"random description"} 对于我的Story实体,我有StoryDTO map字段称为storyInfo. 问题是:我如何使用Strory将字段从Strory中转换为StoryDTO in StoryDTO in MapStruct? 解决方案 尝试以下代码,灵感来自@Mapper(componentModel = "spring") public interface StoryMapper { @Mappings({ @Mapping(source = "storyInfo", target = "storyInfo", qualifiedByName = "fromJsonToMap") }) StoryDTO toStoryDTO(Story story); @Mapping
14 2023-09-12
编程技术问答社区
使用映射列表将对象列表转换为长ID列表
我正在使用MapStruct将实体转换为dtos. 我有一个实体a列表B: public class A { List bs; } 我想在ADTO类中列出B ID列表: public class ADto { List bIds; } 解决方案 这种方法类似于方法由 l_cleo "> l_cleo )我们想将实体映射到其ID的用例.如果您对我的答案进行投票,您可能想给他们一个投票权.我的答案受到他们的启发. 首先,我们创建一个接口HasId,让所有具有long getId() -Method的实体实现此接口: public interface HasId { long getId(); } @Builder @Value public class A implements HasId { long id; List bs; } @Builder @Value public class B
12 2023-09-12
编程技术问答社区
MapStruct向dto添加一个新的计算字段
我正在尝试使用mapstruct将实体Order映射到OrderDTO.我想添加到OrderDTO新字段total,此字段在原始实体Order中不可用,应使用Order中可用的信息进行计算(订单条目价格,数量,税收.. ). 我在OrderDTO中创建了一个新的字段total,并且正在尝试通过在映射器接口中添加默认方法来映射它: public interface OrderMapper { ... default BigDecimal orderToTotal(Order order){ return logicToCalculateTotal(); } } 当我午餐时,构建映射启动错误 未绘制的目标属性:" Total". 任何想法如何解决这个问题? 谢谢 解决方案 有多种方法可以实现所需的目标.第一种方法是使用@AfterMapping或@BeforeMapping.如果您使用的话,您的代码看起来像:
10 2023-09-12
编程技术问答社区
如何在Spring Boot中使用Mapstruct映射父代和子代?
我有父母(产品)和孩子(书籍,家具),并希望将产品实体映射到产品DTO.如您所见,产品被映射并存储在数据库中的单个表中.我该如何映射父母的产品,其中有额外的孩子的细节? 我已经看 this https://github.com/mapsstruct/mapsstruct/issues/366" rel =" noreferrer" -Child-dtos-ininto-a-single-request-spring-boot"> this 有一些想法,但没有运气 实体 @Entity @Table(name = "product") @Inheritance(strategy = InheritanceType.SINGLE_TABLE) public class Product { @Id private long id; private String productName; } @Entity @DiscriminatorValue("Book")
6 2023-09-12
编程技术问答社区
MapStruct mapper返回空的映射对象
我正在尝试使用映射来映射DTO和实体对象之间的转换,但是生成的映射器实现仅返回 empty beermapperimpl @Generated( value = "org.mapstruct.ap.MappingProcessor", date = "2020-11-05T07:42:21+0800", comments = "version: 1.3.0.Final, compiler: javac, environment: Java 11 (Oracle Corporation)" ) @Component public class BeerMapperImpl implements BeerMapper { @Override public BeerDto beerToBeerDto(Beer beer) { if ( beer == null ) { return null;
18 2023-09-12
编程技术问答社区
MapStruct的实现在Spring Boot Web应用中不工作
我是Spring Boot的新手, mapsstruct 工具. 之前,一个项目(由其他团队使用这些技术编写)并未启动.然后,我对映射器抽象类进行了一些更改,但是现在映射对象在应用程序启动时以null为单位. 映射器摘要类: @Mapper(componentModel = "spring") public abstract class UserAndEmployeeMapper { public UserAndEmployeeMapper INSTANCE = Mappers.getMapper( UserAndEmployeeMapper.class ); @Mapping(source = "username", target = "name") @Mapping(source = "ssn", target = "ssn", defaultValue = "xxxxxx" ) @Mapping(target = "salary
8 2023-09-12
编程技术问答社区
MapStruct-找不到实现
使用MAVEN使用最新的Springboot和MAPSTRUCT版本,并使用Maven构建,我正在尝试实现官方MAPSTRUCT网站 我的代码更简单: pom.xml 1.3.1.Final (...) org.mapstruct mapstruct ${org.mapstruct.version} (...) org.apache.maven.plugins maven-compiler-plugin
12 2023-09-12
编程技术问答社区
如何将mapstruct和springboot bean一起使用?@自动连接
@Mapper(componentModel = "spring") public interface DemoConvert { public static DemoConvert INSTANCE = mappers.getMapper(DemoConvert.class); @AutoWired private PersonInfoSearchService personInfoSearchService; @Mapping(source = "name", target = "name") @Mapping(source = "id", target = "gender", expression = "java(personInfoSearchService.searchGenderById(id))") PersonDTO toPerson(TeacherDTO teacherDTO); } 如何一起使用Mapstruct
50 2023-09-12
编程技术问答社区
如何向Mapstruct的抽象映射器注入(custructor)一个Spring Bean?
我要使用CounterService的映射器类.我正在尝试注入构造函数,但这不起作用,null正在打印. @Mapper(componentModel = "spring", uses = CounterService.class, injectionStrategy = InjectionStrategy.CONSTRUCTOR) public abstract class CarMapper { private CounterService counterService; public CarMapper(CounterService counterService) { this.counterService = counterService; } public abstract Car dtoToEntity(CarDto carDto); public CarDto entityToDto(Car car) {
10 2023-09-12
编程技术问答社区
@MAPSTRUCT。源参数中不存在名为 "包装 "的属性
我正在用Spring Boot和Hibernate编写MVC REST.我决定使用MAPSTRUCT进行DTO映射.看来我根据指南完成了所有操作,但是发出了错误.有什么问题,我听不懂.论坛和Google上的信息很少. P.S.起初,我以为问题在Lombok中,所以我删除了Lombok并手动分配了getters / setters.然后问题没有解决.我在Drink班级和DrinkDTO中都参加了getters / setters.它仍然没有帮助. 饮料: @Entity @Table(name = "drink", schema = "public") public class Drink { public Drink() { // Constructor for Hibernate } // Fields // private @Id @GeneratedValue Long id; @Colum
10 2023-09-12
编程技术问答社区
MapStruct mapper 错误: 结果类型Dto中的未知属性 "propertyName"。你是说 "null "吗?
// Driver model @Data @AllArgsConstructor @NoArgsConstructor public class Driver { private String driverName; private String licenseNumber; } // Car model @Data @AllArgsConstructor @NoArgsConstructor public class Car { private String make; private List drivers; private CarType type; } // Car DTO @Data @AllArgsConstructor @NoArgsConstructor public class CarDto { private String make; private Integer totalDriver
10 2023-09-12
编程技术问答社区