我有 2 个实体:
@Entity
@XmlRootElement
public class test {
@Getter
@Setter
@XmlElement(HERE I WANT THE NAME OF THE COUNTRY)
private Country country
}
@Entity
public class Country {
@Getter
@Setter
private String name;
@Getter
@Setter
private String capital;
}
我可以使用一些魔法将@XmlElement的国家/地区名称作为简单的字符串获取,而无需用@Xml注释包装国家/地区实体?
您可以
为Country
类型创建自定义@XmlJavaTypeAdapter
:
public static class CountryXmlAdapter extends XmlAdapter<String, Country> {
@Override
public Country unmarshal(String v) throws Exception {
Country c = new Country();
c.setName(v);
return c;
}
@Override
public String marshal(Country v) throws Exception {
return v != null ? v.getName() : null;
}
}
然后,您只需像这样注释您的国家/地区字段:
@Entity
@XmlRootElement
public class test {
@Getter
@Setter
@XmlElement(name = "country")
@XmlJavaTypeAdapter(CountryXmlAdapter.class)
private Country country
}
或者,如果您只关心单向封送,请尝试在test
类中创建方法getCountryName()
并使用 @XmlElement
对其进行批注。