2010-01-19 96 views
2

我使用Java持久性,并且我想要一个Web方法返回实体类的“部分”。例如,我有一个Customer类,它代表了Customer表中有许多字段的记录,但我只想返回其中的一小部分。有没有可能使用映射来做到这一点?或者唯一的方法是创建一个新的类(也许是客户的超类),只有我想返回的字段?我想结合,但没有奏效(显然我做了一个错误的方式):从Java Web服务返回复杂类型

@Entity 
@Table(name = "Customer", catalog = "test", schema = "") 
@XmlType(name = "Customer") 
public class Customer implements Serializable { 
private static final long serialVersionUID = 1L; 
@Id 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
@Basic(optional = false) 
@Column(name = "id") 
@XmlElement 
private Integer accountId; 

@Basic(optional = false)  
@Column(name = "username") 
@XmlElement 
private String username; 

@Basic(optional = false) 
@Column(name = "password") 
private String password; 

我想,如果我不@XmlElement注释添加到密码字段,它不会被列入成果。但是,在部署期间,我收到了一堆“类有两个同名的属性”的错误。

回答

2

标注与

@XmlAccessorType(XmlAccessType.NONE) 

那么类注释要与

@XmlElement(name="field_name") 

实际上,有一个JAXB的问题(我找不到引用现在)发送的字段基本上说,如果你将从XML阅读,你会想注释设置器而不是字段本身。