当前位置: 首页 > 知识库问答 >
问题:

Mapstruct生成的类使用来自父级而不是子级的Lombok builder

游炳
2023-03-14
@Builder
class A {

}

@Document
@Builder
class B extends A{
}

@Mapper
public interface ClassMapper {
   B mapToDocument(A domainObject);
}
public class ClassMapperImpl implements ClassMapper{
   @Override
   public B mapToDocument(A domainObject){
      if(domainObject == null){
         return null;
      }
      Builder builder = A.builder();
      //builder methods
      return builder.build(); //incompatible types due to builder generating A objects, not B
   }
}

共有1个答案

史默
2023-03-14

即使没有映射器,您的代码也无法编译。Lombok抱怨B类中的@Builder返回了不兼容的类型:

返回类型与.builder()不兼容

因为.builder()方法是静态的,所以它不能使用继承机制。

 类似资料:
  • 问题内容: 假设我们有3个Entities对象类: 如何使用JPA2.x(或hibernate)批注来: 父级删除时(一对多)自动删除所有子级 删除后自动从子级列表中删除子级(多对一) 儿童删除时(一对一)自动删除玩具 我正在使用Hibernate 4.3.5和mysql 5.1.30。 谢谢 问题答案: 如本文所述, 实体状态转换应从父级到子级联,而不是相反。 您需要这样的东西:

  • 问题内容: 以故事形式: 我在这里寻找的是主从设置。母版是列表形式的,当我单击一个链接(相对于特定的行/记录(在这种情况下为Account))时,我想在主视图(直译为“主”视图:)中查看详细信息。 我想这样做并维护我的URL结构(用于帐户列表;用于详细版本), 但是我希望详细视图使用列表正在使用的视图 。 我目前有什么 index.html account.js 此时,该路线将按预期工作。它在视图

  • 问题是要确定子数据的总和是否等于父数据。如果是,返回真,否则返回假。 下面是我的代码,在提交时出现错误。我知道这是一个简单的问题,但在编写了条件之后,我很难通过遍历所有左右节点来递归检查二叉树中每个节点的和条件。 请指导我,因为我哪里做错了。

  • 问题内容: 在我的应用中,我必须经常在两种布局之间切换。错误在下面发布的布局中发生。 第一次调用布局时,没有发生任何错误,一切都很好。然后,当我调用不同的布局(空白),然后再次调用我的布局时,出现以下错误: 我的布局代码如下所示: 我知道之前曾有人问过这个问题,但对我来说没有帮助。 问题答案: 错误消息说明你应该做什么。

  • 下面是一个XSD文件,我需要用它来验证这个xml。 所以先解释一下。我定义了一个可以包含多个事件元素(类型为“eventType”)的计划元素。此外,我还定义了替换元素事件(替换组)的元素课程、研讨会和实验室,以便: > 课程必须包含教授元素 研讨会必须只包含一个讲座元素 实验元素的讲座不应包含教室属性(禁止)。在其他任何情况下,教室都是必需的。 最后一个我一直有问题。基本上,为了解决这个问题,我

  • 我有两个实体使用Spring和Hibernate