问题标签 [orika]

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 投票
1 回答
1417 浏览

orika - 如何在 Orika 自定义映射器中映射对象属性?

我试图在Orika 文档中找到这个问题的答案,但没有运气。

我有以下课程:

..和以下CustomMapper将B的对象映射到对象BDO

在我的客户代码中,我有:

我的问题是,在 BMapper 中,让 AMapper 将“a”映射到“someA”的正确方法是什么?换句话说,在 BMapper 中将 a 映射到 someA 的正确方法是什么?我怀疑它可以通过 MappingContext 对象中的某个接口来完成。

0 投票
1 回答
1121 浏览

java - Orika - 将对象(源)映射到对象(目标)的集合(集合)

我有以下课程。

执行上述代码时,我遇到了以下异常...

-------------------------------------------------- ------------ Unenhance strategy: ma.glasnost.orika.unenhance.BaseUnenhancer@3547efb7 -----结束当前状态的转储--------------- ---------------- 在 ma.glasnost.orika.impl.ExceptionUtility.newMappingException(ExceptionUtility.java:55) 测试 au.com.copl.dbaccesslayer.session.WebserviceBeanTest 失败

0 投票
1 回答
1349 浏览

java - jodatime DateMidnight 的 Orika 映射

我正在尝试将 a 映射DateMidnightLocalDateusing orika。但无论我尝试什么,我都会收到此错误ma.glasnost.orika.MappingException: No concrete class mapping defined for source class org.joda.time.chrono.ISOChronology。但它只在詹金斯服务器(unix)上失败,而不是在本地(win)上失败。

DateMidnight从to的映射LocaleDate配置如下:

无论如何,我尝试在 jodatime 中找到的年表之间添加具体映射。

例如

ISOChronology->ISOChronology

ISOChronology->Chronology

Chronology->ISOChronology

Chronology->Chronology

使用registerClassMap如下所示:

mapperFactory.registerClassMap(mapperFactory.classMap(ISOChronology.class, ISOChronology.class).byDefault().toClassMap());

ISOChronology->ISOChronology给我exception while creating object factory for org.joda.time.chrono.ISOChronology

任何帮助将不胜感激

编辑 - 解决方案和更多信息

所以,我在第一次注册一个ObjectFactoryfor Chronologyusing后找到了一个解决方案MapperFactory.registerObjectFactory

然后代码失败并出现异常,解释了 280hoursInDay在创建LocaleDateTime. 现在,所有映射器都设置为映射 from DateMidnightto LocaleDate,为什么它会尝试初始化一个LocaleDateTIme对象......下面是Period它试图映射到的类(从内存中写入)

映射器从XMLPeriodPeriod使用field("fom", "from")field("to", "to")

事实证明,Orika 的构造函数解析策略是基于一种启发式方法,试图找到它可以满足的具有最多参数的构造函数。然而,启发式并没有考虑您注册了哪些映射或转换器,而是纯粹查看参数名称。

由于最后两个构造函数具有相同的等级。然后它使用 忽略构造函数LocaleDate,并尝试使用 initialize LocaleDateTime。然后残酷地失败了,因为它没有参数顺序的概念LocaleDateTime(并且也会因为ISOChonology类似于单例而失败,但这是固定的)

所以...解决我所有问题的方法...

是的,重命名参数解决了问题......

PS。这可能不是解决此问题的最佳方法。但这是一个解决方案。如果有人知道如何以更好的方式解决这个问题,请告诉我。

0 投票
1 回答
934 浏览

java - Java - Orika 1.4.5 - OutOfMemoryException:PermGen 空间

我对 Orika 1.4.5 和 PermGen Space 有疑问。

确实,我以这种方式使用 aa ConfigurableMapper :

}

但是每次我调用这个映射器时,我都会自动生成存储在 PermGen 中的类映射器。

我尝试使用 MapperFactory 的“existsRegisteredMapper”来防止类映射器自动生成,但它不起作用:

和修改后的第一个代码块:

请问,有没有办法在不重写我拥有的所有映射器的情况下防止类映射器自动生成?

谢谢你的帮助。

0 投票
0 回答
88 浏览

java - 如何使用 Orika 映射器将整个源对象 A 映射到目标对象 B 的属性?

我想使用 Orika 映射以下两个类:

这样整个结果就与,和一起PagedList成为users属性。我只看到将字段/属性从源映射到目标的方法。理想情况下,我不想使用方法。 ListUsersResulttotalobjectpageSizecustomize

0 投票
2 回答
1940 浏览

java - 在 Orika 中定义映射时实际上可以使用泛型吗?

我知道那种类型的擦除,并且在定义映射时会阻止使用泛型,因为这个问题指出了如何用 Orika 映射泛型对象?. 但是Orika FAQ在“是否支持泛型”部分声称:

是的。Orika 通过一个特殊的 Type 类包括对泛型类型映射的特殊运行时支持,该类可用于定义模板化类型的确切类型元素。

理想情况下,如下所示应该可以工作(假设我们可以通过一些 Orika 功能在运行时以某种方式维护类参数):

我找不到有关Type<?>Orika 常见问题解答提到的类使用的任何示例。

0 投票
1 回答
2649 浏览

java - Orika 如何在不实例化新目标对象的情况下映射对象

我需要用 Orika 替换 Dozer 映射,我想知道是否可以mapper.map(obj1, obj2)在 Orika 中做这个 Dozer 的东西?到目前为止,我已经看到,对于目的地,您只能指定类类型而不是对象,所以我假设每次都会创建一个新实例。但在这种情况下,我只需要使用 DTO 的某些字段更新先前找到的实体对象。那可能吗?

0 投票
1 回答
727 浏览

dozer - 将 Immutable java 对象转换为不可变对象(Immutable 或 Builder)

我想将一个不可变对象转换为另一个不可变对象。我搜索了一下,发现 Dozzer 和 Orika 主要用于对象映射。

我尝试使用 Dozzer,但似乎它不适用于使用构建器模式创建的对象。

我想互换地转换这两种结构。我几乎不知道我可以创建 custommapper 来执行此任务。如果 Dozzer/Orika 可以简单地使用,请帮助我。

0 投票
0 回答
1171 浏览

java - 执行 map 方法时的 Orika 延迟加载

我正在使用 Orika 将我的 Hibernate 实体映射到 Web 服务调用中的 DTO 对象。这些实体中有 @OneToMany 和 @ManyToOne 关系,用于父子关系。此外,我正在使用 Spring JPA 创建这些实体。

在将 Hibernate 实体映射到 POJO DTO 类时,map() 方法会导致加载所有延迟加载的属性。



在这种情况下,消费者属性映射导致 Hibernate 加载孩子,这不是我想要的。

我虽然 HibernateUnenhanceStrategy 旨在通过删除 Hibernate 代理来解决此问题,但它没有,或者我做错了。

我意识到我可以从映射配置中排除字段,但我希望孩子可能在某些 Web 服务调用中,但只想在其他 Web 服务调用中使用高级父属性。

我相信我可以自己创建一个 CustomMapper 来解决这个问题,但在我走这条路之前,我想确保我没有遗漏 Orika 内置的东西。

谢谢。

0 投票
1 回答
1376 浏览

java - Orika 嵌套映射器

我需要使用 Orika 实现嵌套映射器。我应该怎么做?让我们讨论嵌套的简单对象

让我们假设我有单独的地址对象的 java 映射器。我应该如何在 orika 的以下字段映射中使用外部 Java 映射器?

字段映射中的customize() 选项是在.classMap 映射中显式映射复杂字段,这将使当前映射在对象很大时难以读取。