问题标签 [dozer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3801 浏览

java - Dozer 中的地图集合大小

有没有办法在推土机中映射集合大小?

0 投票
2 回答
4133 浏览

types - 推土机:JAXBElements 到 Java 类型?

我正在尝试(使用 Dozer)将 JAXB DTO 转换为 POJO(实际上,在持久化之前转换为 JPA 注释的 Hibernate 实体)。现在的问题是,现在 Dozer 似乎没有将元素从 JAXB JAXBElement<> 类型转换为 JAXBElement.getValue() 类型。因此,例如,将 JAXBElement s 转换为 POJO 作为 JAXBElement,而不是 java.lang.String。属性名称很常见;JAXBElement 包装器是唯一的区别。

有没有一种简单的方法可以在不编写自定义转换器来处理 JAXB->java 类型转换的情况下做到这一点?这似乎是一件简单的事情,所以我觉得我一定错过了一些东西。推土机常见问题解答仅提及 POJO->JAXB,而不是相反...

谢谢你的帮助!

0 投票
1 回答
6588 浏览

logging - 如何关闭推土机的调试?

有没有办法只为推土机关闭调试日志记录?至少不必将其提高到调试级别以上?

0 投票
3 回答
6052 浏览

java - 在推土机中使用中间集合映射深层属性

假设我有以下课程

有没有我可以使用的映射,给定一个 Baz,将它映射到目标类并获取 Baz 中 foo 中包含的字符串列表?以下映射不起作用

因为 string 不是 foos 的属性(它是 List 类型)。我原以为 Dozer 会足够聪明,如果它在深度映射中遇到一个集合,并且目标也是一个集合,那么它能够将深度属性名称分成两个并遍历集合以获取子部分来自集合成员的深度映射。显然不是。除了提出 Dozer 的功能请求之外,是否有解决方案?

0 投票
2 回答
2983 浏览

java - 原始类型的推土机自定义转换器

下面的 url 有一个关于推土机自定义转换器的例子..

Dozer 中的地图集合大小

但是当我尝试那个例子时,它给出了这样的例外..

类型:null 源父类:dozerPackage.Source 源字段名称:images 源字段类型:class java.util.ArrayList 源字段值:[www,eee] 目标父类:dozerPackage.Destination 目标字段名称:numOfImages 目标字段类型:整数

org.dozer.MappingException:此自定义转换器(dozerPackage.TestCustomFieldConverter)不接受目标类型(int)!

有什么方法可以从推土机自定义转换器返回原始类型..

0 投票
4 回答
17329 浏览

java - 休眠对象到 DTO 的推土机映射

我尝试使用 Dozer 将我的域实体转换为 DTO 对象。所以,我想在我的 DTO 对象中将 PersistentList, PersistentBag, ... 从我的域实体转换为 ArrayList, ... 以避免惰性问题。

这是我的两个域实体的示例:

我的 DTO 对象是相同的,只是该类是 DTO 类型。因此,要将域转换为 DTO 对象,我使用以下推土机映射:

BagConverter 是一个推土机自定义转换器,这是它的代码:

所以,我得到一个包含角色的 PersistentBag 的用户对象。我在该对象上应用推土机映射器地图以获取 UserDTO 对象。我得到的结果是一个 UserDTO 对象,它有一个 Role 的 ArrayList,没有我希望的 RoleDTO 的 ArrayList。

我以为即使我使用自定义转换器,推土机也会转换我列表的内容。这不是正确的方法吗?如果不是,如何通过将持久性集合替换为经典 java 集合来将我的域实体转换为 dto 对象?

谢谢你的帮助。

西尔万。

0 投票
7 回答
15803 浏览

java - 推土机深度映射不起作用

我正在尝试使用推土机 4.1 在类之间进行映射。我有一个如下所示的源类:

我有一个看起来像这样的目标类:

所以基本上我希望将详细信息数组中的字符串填充到详细信息对象的列表中。

我试过这样的映射:

但我得到这个错误:

我怎样才能映射它以便它工作?

0 投票
1 回答
794 浏览

java - 如何在运行时在 Dozer 中查找属性映射?

我使用Dozer在 Java bean 之间进行映射。我有一个推土机映射文件,其中包含所有映射。示例映射如下所示:

现在我想在运行时找到映射。例如,给一个字段作为字符串com.xyz.A.key,我想找到它以com.xyz.B.id编程方式映射到。我查看了 Dozer API(org.dozer.Mapper接口),它只公开了映射 bean 的方法。

所以我的问题是:是否有 API 以编程方式查找映射?

0 投票
3 回答
6860 浏览

java - 使用 Dozer 将一种类型的列表转换为另一种类型的数组

我想知道如何使用 Dozer 在 Java 中将一种类型的列表转换为另一种类型的数组。这两种类型具有所有相同的属性名称/类型。例如,考虑这两个类。

我试过这个没有运气。

我也尝试过使用 CollectionUtils 类。

两者都不为我工作,谁能告诉我我做错了什么?如果我创建两个包装类,一个包含 List,另一个包含 ab[],则 mapper.map 函数可以正常工作。见下文:

这很奇怪......

在不使用包装类 (C & D) 的情况下如何做我想做的事情?必须有一个更简单的方法......谢谢!

0 投票
5 回答
66473 浏览

java - 如何获取父基类对象super.getClass()

我对 Java 有一点问题(作为 C++ 程序员)。

我有 2 个相关的课程:

这将输出:

类 org.example.smartgwt.server.model.PatientPersistent

有没有办法获取父类类型?IE

类 org.example.smartgwt.server.model.Patient。

这将允许我概括一些我需要在每个孩子身上实施的方法,这很糟糕。

谢谢!


更新

我正在使用 Dozer 将我的域 Hibernate 对象转换为可序列化的版本。我不希望客户知道这一点,所以客户只看到Patient类。在服务器端,我执行转换。

我知道这段代码不起作用,但这只是为了说明我的观点。我希望能够对象转换为可序列化的形式,以便可以将其发送回客户端。这就是为什么我想给出父母的类型。调用映射器总是一样的,一个源对象和一个 Dest.class。

也许我对java太困惑了。

谢谢