Как и в заголовке, я пытаюсь отобразить 2 класса, но один из классов имеет частную собственность с частным сеттером.Dozer Field - исключить одностороннюю приватную собственность, дающую ошибку
public Class A {
private String propertyA;
private String propertyB;
ClassA(){
}
public String getPropertyA() {
return propertyA;
}
public void setPropertyA(String propertyA) {
this.propertyA= propertyA;
}
public String getPropertyB() {
return propertyB;
}
public void setPropertyB(String propertyB) {
this.propertyB= propertyB;
}
}
public Class B {
private String propertyA;
private String propertyB;
ClassB (String propertyB){
propertyB = propertyB;
}
public String getPropertyA() {
return propertyA;
}
public void setPropertyA(String propertyA) {
this.propertyA= propertyA;
}
public String getPropertyB() {
return propertyB;
}
void setPropertyB(String propertyB) {
this.propertyB= propertyB;
}
}
Я хочу сопоставить объекты класса А до класса В и наоборот, с той лишь разницей, что propertyB не нужно, чтобы установить в отображение из класса А к В. Я попытался он имеет следующую конфигурацию:
<mapping>
<class-a map-null="false">classA</class-a>
<class-b>classB</class-b>
<field>
<a get-method="getPropertyA" set-method="setPropertyA">propertyA</a>
<b get-method="getPropertyA" set-method="setPropertyA">propertyA</b>
</field>
<field-exclude type="one-way">
<a get-method="getPropertyB" set-method="setPropertyB">propertyB</a>
<b get-method="getPropertyB">propertyB</b>
</field-exclude>
</mapping>
Это дает мне исключение: свойство propertyB для класса classB не может быть записано. Это было мое намерение с частной собственностью, но что бы я ни делал, исключение остается. Я попытался добавить сопоставление полей с типом = «односторонним», но это дает мне то же исключение. Есть ли способ сделать это с помощью Dozer?