Orika支持泛型类型,但我很难让它处理泛型集合。由于Orika不支持不同的收集策略(累积的、非累积的、孤立的删除),所以我需要编写一个自定义映射程序来处理我的需求。
问题是Orika没有应用此映射程序,而是尝试使用正常的集合映射逻辑。
Type<List<Document>> DOCUMENT_LIST = new TypeBuilder<List<Document>>() {}.build();
Type<List<DocumentRepresentation>> DOCUMENT_REP_LIST = new Typ
我有表格的课程-
class EdgeMtuMismatchEvent {
private final List<MtuInterfaceMap> list = new ArrayList<>();
private int id;
// public getters and setters
}
我必须将上面的类映射到如下所示
class EdgeMtuMismatchEventUI {
private final List<MtuInterfaceMapUI> list = new ArrayList<>();
我有两个不可变的 bean类,我使用映射将值从一个复制到另一个。但是,当我试图通过Orika映射复制unmodifiableList时,它会在异常下面抛出失败:
java.lang.UnsupportedOperationException
at ma.glasnost.orika.ExceptionUtility.newMappingException(ExceptionUtility.java:55)
at ma.glasnost.orika.impl.MapperFacadeImpl.map(MapperFacadeImpl.java:681)
at ma.glasnost.orika
我正在使用Spring和Spring Data JPA,我遇到了一个深度复制复杂实体的问题。实体A有10个一对多的关系(为简洁起见,这里只显示了一个),我希望在不使用嵌套对象B的id字段的情况下深入复制此实体。
我希望避免由于性能损失而使用反射。使用Orika时,我已经排除了A的id,但无法排除嵌套对象的id。
@Entity
public class A {
@Id
@GeneratedValue
private Long id;
//...
@OneToMany()
@JoinColumn(name = "a_id")
我一直在努力完成一项任务,即如何告诉Orika将继承的结构映射到DTO,以便它能够正确地解决对象重建的实现问题。下面是一个包含许多嵌套对象的简单结构的示例:
abstract class Document {
// common values
}
class LegalDocument extends Document {
// complex object with many nested objects
}
class PersonalDocument extends Document {
// complex object with many nested objects
我使用Orika避免样板转换器,并有一个有趣的问题。为了简化开发,我需要创建一个注释,它将决定何时映射该值以及何时将其保留为原样(不为null或默认值,与原样一样)。
假设我们有两个类:
class Dto {
public int id;
public String name;
}
class Entity {
public int id;
public String name;
}
Dto来自前端,我们希望将字段名映射到一个实体,前提是它以如下方式开头:
if {dto.name.startsWith("A")}
entity.na
我试图了解什么时候Orika使用转换器进行映射而不是直接转换。
我有以下映射:
Class A {
Map<String, Object> props;
}
Class B {
String bStr;
int bInt;
}
我的映射被定义为道具‘’aStr‘=> bStr和道具’bInt‘=> bInt
当我查看生成的代码时,我看到对于字符串情况,它使用一个转换器并为转换调用其转换方法:
destination.setBStr("" + ((ma.glasnost.orika.Converter)usedConverters[0
考虑6个POJO类:3个DAO和3个DTO。
道斯:"A“"B”"C“
DTO:“一”、“二”、“三”
public class A {
private int idOfA;
private String name;
private List<B> b;
// getters, setters, etc...
}
public class B {
private int idOfB;
private String name;
private List<C> c;
// ge
我有两个对象具有相同的“链接”属性,当使用Orika从A -> B映射时,我得到
ma.glasnost.orika.MappingException:ma.glasnost.orika.MappingException:
While attempting the following mapping:
sourceType = A
sourceProperty = links(Links)
destinationType = B
destinationProperty = links(Links)
Error occurred: java.l
我试图将DTO映射到对应的实体Hibernate。我从Hibernate会话加载实体并直接执行映射。
这是我得到的例外:
javassist.NotFoundException: my.pkg.MyEntity$$EnhancerByCGLIB$$a7950497
at javassist.ClassPool.get(ClassPool.java:436)
at ma.glasnost.orika.impl.generator.JavassistCompilerStrategy.assureTypeIsAccessible(JavassistCompilerStrategy
我想使用Orika库映射一个带有嵌套集合的字段。我在class中的字段定义为:
private final List<List<Pojo>> list = new LinkedList<List<Pojo>>();
Pojo是一个简单的POJO类。不幸的是,我在Orika的内部逻辑中得到了一个由NullPointerException引起的MappingException。
我是不是做错了什么?也许我需要使用自定义映射功能?
编辑:
下面是我的代码:
public class Pojo {
private int field;
public i