我有一个实体类:
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
@XmlTransient
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "CUSTOMER_ID")
private Integer customerId;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "NAME")
private String name;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 30)
@Column(name = "ADDRESSLINE1")
private String addressline1;
@Basic(optional = false)
.
.
.
.
Run Code Online (Sandbox Code Playgroud)
我在jax-ws web服务中通过xml发送了类的对象,如下所示:
<addressline1>xx</addressline1><addressline2>xx</addressline2><city>xx</city><country>xx</country><creditLimit>xx</creditLimit><customerId>xx</customerId><email>xx</email><name>xx</name><owner>xx</owner><phone>xx</phone><province>xx</province><zip>xx</zip>
Run Code Online (Sandbox Code Playgroud)
是否有可能不发送其中一个变量,例如customerId,客户端应该看不到?我添加了@XmlTransient,但没有变化.
我有一个像
public class Grandpa...
public class Father extends Grandpa...
public class Son extends Father...
Run Code Online (Sandbox Code Playgroud)
我想用 propOrder 注释将其编组到文件。
所以我可以在 Grandpa 上使用 @XmlTransient 并在 Father 类上设置 propOrder,但是如何将 propOrder 应用于所有 3 个类?
据我了解,“@XmlTransient”方法仅适用于一个超类和一个子类?
我正在尝试将 XML 解组为一个我期望应该具有特定字段的对象。但是,我不想将该对象编组到包含它的 XML 中。我喜欢的是类似于这样的:
@XmlRootElement(name = "User")
public class User {
private String name;
@XmlTransient
public String getName() {
return this.name
}
@XmlElement(name = "Name")
public void setName(String name) {
this.name = name
}
}
Run Code Online (Sandbox Code Playgroud)
但是,由于注释冲突,这不起作用,因为我无法将任何其他 XML 注释与@XmlTransient. 我还尝试@XmlTransient在字段本身而不是 getter 上添加注释,并设置了此选项:
XmlAccessorType(XmlAccessType.FIELD)
此外,我将@XmlElement注释保留在设置器上,这对于排除该字段进行编组绝对没有任何作用。
我想保留@XmlElement注释,因为我希望能够将具有不同名称的字段(这里只是大小写差异)翻译成我想要的任何字段。
我也无法删除 getter,因为我确实在应用程序中使用了它。
鉴于此,我不知道此时我的选择是什么,除了编写一个适配器(我可以这样做,但如果有另一种解决方案,我宁愿不使用自定义适配器,因为这个字段)。任何帮助将不胜感激。