我在使用 MAPSTRUCT 时遇到问题。我创建了一条 id 类型为 long 的记录,在我的映射器中,我需要将此对象转换为 Long 类型,但出现以下错误。我将留下代码以使问题更清楚,抱歉,如果缺少任何信息,这是我在论坛上的第一个问题。
在创建 java.lang.Long 时发现了不明确的构造函数:Long(long)、Long(java.lang.String)。声明无参数构造函数或使用名为 @Default 的注释来注释默认构造函数。
我的代码:
IdClient.java
public record IdClient(Long id) { }
ClientEntity.java
@Table(name = "client") @Builder
public record ClientEntity(Long idClient){}
ClientMapper.java
@ApplicationScoped public interface ClientMapper {
ClientEntity IdClientToClientEntity(IdClient id);
Long map(IdClient id);
}
我解决了它,
@Mapping(target = "idRelatorio", source = "id")
但我不确定这是否是最合适的方法,考虑到记录的类型是长的并且我的实体期望长。我打开这个主题是为了找出适合这种情况的最佳方法。