gpt4 book ai didi

java - 推土机引用复制不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 13:29:01 24 4
gpt4 key购买 nike

我有由 jpa 工具创建的实体,当我从数据库获取实体并尝试使用推土机进行映射时,我有类似的 DTO。

实体和 DTO 看起来像

class A                             class A1
{ {
private B b; private B1 b1;
private C c; private C1 c;

getter/setter getter/setter
}

class B class B1
{ {
private C c; private C1 c;

getter/setter getter/setter
} }

class C class C1
{ {
private A a; private A1 a;
private B b; private B1 b;

getter/setter getter/setter
} }

推土机映射文件如下所示:

<mapping>
<class-a>com.entity.A</class-a>
<class-b>com.dto.A1</class-b>
<field copy-by-reference="true">
<a>b</a>
<b>b1</b>
</field>
<field copy-by-reference="true">
<a>c</a>
<b>c1</b>
</field>
</mapping>

我遇到了这样的异常:

org.dozer.MappingException: Illegal object type for the method 'setb1'. 
Expected types:
com.dto.B1
Actual types:
com.entity.B

我对 Dozer 很陌生,请帮我解决这个问题

最佳答案

使用引用复制时,两个实体上的 setter 应该具有相同的类型。使用这意味着 Dozer 不会完成任何转换/变换,而只是同一对象的简单副本。

如果您不需要此功能,请删除“按引用复制”属性,它应该可以工作(假设您没有 Dozer 无法自动转换的任何其他复杂类型)。

关于java - 推土机引用复制不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com