tôi có 2 lớp:lĩnh vực Ngoại trừ trong JAXB
@XmlRootElement
public class A {
private Long id;
private B b;
// setters and getters
}
và
@XmlRootElement
public class B {
private Long id;
private String field1;
private String field2;
// setters and getters
}
Theo mặc định, nếu tôi chuyển đổi một thể hiện của lớp A
đến XML, tôi sẽ có tất cả các lĩnh vực của nó (id
) và các trường tham chiếu B
lớp học (id
, field1
, field2
) như sau:
<a>
<id>2</id>
<b>
<id>5</id>
<field1>test1</field1>
<field2>test3</field2>
</b>
</a>
Is có thể sửa đổi gì lĩnh vực từ tham chiếu lớp B
được bao gồm trong XML của lớp A
? Ví dụ. Tôi muốn nói rằng khi tôi chuyển đổi một thể hiện của A
lớp, tôi chỉ muốn để có được id
từ B
lớp (không field1
và field2
lĩnh vực), vì vậy tôi muốn nhận được:
<a>
<id>2</id>
<b>
<id>5</id>
</b>
</a>
Tôi không muốn vĩnh viễn chú thích các lớp B
(sử dụng @XMLTransient
hay @XMLElement
) để đạt được nó, như có những trường hợp trong đó tôi muốn xuất cả lớp B
như là (với id
, field1
và field2
.)
tôi chỉ không muốn xuất tất cả các trường này khi lớp học B
được tham chiếu từ A
.
Điều này có thể thực hiện được với JAX-B không?
Cảm ơn! Tôi đoán nó phức tạp một chút nếu tôi đang sử dụng Glassfish JAXB thực hiện ... Có vẻ như không có giải pháp dựa trên chú thích và tôi cần phải tạo một XML tùy chỉnh bổ sung? –