模型映射器映射通用字段

发布于 2025-01-16 23:10:21 字数 645 浏览 0 评论 0原文

我正在使用 ModelMapeer 库并尝试添加自定义映射。 我有抽象实体:

public abstract class AbstractEntity<ID extends Serializable> {
     private ID id;
}

和子实体,

public class User extends AbstractEntity<UUID> {
     //fields
}

所以我尝试添加这样的自定义映射

this.typeMap(User.class, UserDetailsDto.class)
            .addMappings(mapper -> mapper.map(User::getId, UserDetailsDto::userId));

并得到此异常:

java.lang.ClassCastException: class java.io.Serializable$ByteBuddy$lX3s11ID cannot be cast to class java.util.UUID

我需要在映射(而不是实体)中更改什么来解决此问题?谢谢!

I am using ModelMapeer library and trying to add a custom mapping.
I have abstract entity:

public abstract class AbstractEntity<ID extends Serializable> {
     private ID id;
}

and child entity

public class User extends AbstractEntity<UUID> {
     //fields
}

so I am trying to add custom mapping like this

this.typeMap(User.class, UserDetailsDto.class)
            .addMappings(mapper -> mapper.map(User::getId, UserDetailsDto::userId));

and getting this exception:

java.lang.ClassCastException: class java.io.Serializable$ByteBuddy$lX3s11ID cannot be cast to class java.util.UUID

What do I need to change in a mapping(not entities) to resolve this? Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

森末i 2025-01-23 23:10:21

我认为 UserDetailsDto.userIdUUID ,而 User.idSerialized Id。两者不兼容。

I think UserDetailsDto.userId is UUID and User.id is Serializable Id. Both are not compatible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文