问题标签 [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 回答
465 浏览

mapping - 在 Orika 自定义映射器中调用外部服务

让我们承认我想用 Orika将对象A映射到对象B。对象B的一个字段是通过使用我在对象A中的参数调用外部 Web 服务来构造的。

创建一个使用调用外部服务的服务的 Orika 自定义映射器是一种好习惯,还是应该在外部类中分离这种行为?

0 投票
1 回答
792 浏览

spring - Orika 类不可访问

从 DTO 映射到休眠实体时,出现以下异常:

ma.glasnost.orika.MappingException: ma.glasnost.orika.impl.generator.CompilerStrategy$SourceCodeGenerationException: class com.exmaple.MyEntity_$$_jvst402_4 不可访问

该实体是公开的。

版本:

  • spring-boot-starter-data-jpa:1.4.0.RELEASE
  • 奥里卡:1.4.6
  • 休眠:5.0.9.Final。
0 投票
0 回答
578 浏览

php - 相当于 PHP 的 Java Orika/Dozer/MapStruct 数据映射器(Laravel/Eloquent)?

我想知道是否有用于 PHP/Laravel/etc 的 java 的 Orika 数据映射器的类似物?

我环顾四周,看到了 Doctrine 等,但这些似乎只是 ORM 的。我需要的是从旧的过时(严重规范化的数据库)映射/导入到新的 laravel/eloquent 数据库中。我有使用 Spring MVC 的经验,并且通常会使用 Orika 将旧对象映射到新对象。

PHP有类似的东西吗?

澄清一下,这纯粹是为了将旧数据库结构中的数据摄取到新数据库中。一旦我们对数据在新表结构中的外观感到满意,它将不再被使用。

作为最后的手段,我们甚至可以求助于在 java 中构建一个导入工具,但更喜欢 PHP 解决方案,因为其他开发人员在那里有经验。

0 投票
2 回答
3694 浏览

java - Orika:将常量默认值映射到字段

有没有办法使用Orika将字段的值设置为文字或常量值?

我的意思是:

我在文档中找不到类似的东西......

0 投票
1 回答
667 浏览

mapping - Orika:将 2 个类的字段映射到一个类

有没有一种方法可以使用 Orika 将字段从类映射到一个类。
在 orika 文档中找不到解决方案。

在示例中,来自 ObjectOne 类的字段 test 和 name 应映射到相应的字段 ObjectNew。

与 ObjectTwo 的字段表相同

ObjectNew 的代码

当 ObjectOne 和 ObjectTwo 类的 id 相同时,来自 ObjectOne 和 ObjectTwo 类的字段应该启动新对象 ObjectNew。

任何想法如何处理这个?

亲切的问候

0 投票
1 回答
1663 浏览

java - Orika 映射器 - 映射到列表

我有一个带有字段的对象,List<AnotherObject>我想将它映射到带有字段的第二个对象List<String>。我需要映射 2 个对象。我找不到路。

情况图类一 -> 类二:

实际业务比示例大得多,因此我排除了制作自定义映射器的可能性。

0 投票
0 回答
356 浏览

java - 从一个对象到另一个对象的 Orika 映射

我有一个类在同一类下有 2 个不同的对象:

我正在尝试在客户对象中映射 Addr -> AddressDTO 对象:

当我运行这个时,我得到这个错误:

原因:java.lang.IllegalArgumentException:java.lang.String 是一个不受支持的源类,用于构造 com.domain.AddressDTO 的实例

0 投票
0 回答
366 浏览

hibernate - Orika 和 Hibernate 托管集合

我目前正在使用 Orika 在 Hibernate 托管域对象和模型 (DTO) 之间进行映射。我这样做是因为我想在从 Model --> Domain 开始时合并集合,这样如果没有进行任何更改,实体的 Hibernate 版本号就不会迭代。我最初设置了一个映射器,定义如下:

这在实际上不使用持久层的单元测试中工作得很好,但是当我使用 Hibernate 进行集成测试时,它根本不会被调用。事实上,我的对象中的集合永远不会在任何一个方向上填充。挖掘发现这是由于 Hibernate 使用 PersistentList(实现了 List,但没有类型信息)。所以现在我有两个映射器:

如果我删除 A,那么 Orika 的行为就像映射器根本不存在一样。我认为这是因为当它分析我提供的所有类映射时,它找不到与 PersistentList 匹配的任何内容,因此不包括在内。

如果我删除 B,那么 Orika 将不会正确地将 Hibernate 返回的域对象映射到模型,因为它不会映射 PersistentList。

有没有办法让这个更干净?如何以明确的方式定义涵盖所有情况的单个映射?

0 投票
1 回答
571 浏览

java - 是否可以在 Orika 中将 List 索引指定为可选?

我正在尝试使用 Orika 将一种类型的地址对象映射到更简单的类型,但遇到了一个问题,如果我的列表没有至少与我在映射器中指定的一样多的元素,我会收到 IndexOutOfBounds 异常。

这是我的示例对象:

这是我的映射器:

但在我的示例中,源地址中的列表只有两个字符串。我希望有一种方法可以选择性地映射 address3 字段,但我似乎无法在 Orika 单元测试中找到示例。

当我尝试映射并获得异常时得到的输出是:

有谁知道这是否可以通过简单的方式实现,或者我是否必须为这种类型编写一个 CustomMapper?

0 投票
0 回答
940 浏览

java - 嵌套字段映射在 Orika Mapper 中不起作用

找到以下实体类:

在下面找到 DTO 类

我编写了以下映射器代码以将数据从 RoomEntity 复制到 RoomDTO

属性 - 代码和类型值正在从 RoomEntity 复制到 RoomDTO。
但是嵌套的属性值(hotel.name -> hotelName)没有被复制。
请帮助解决此问题。