1

我有以下休眠属性:

@Id()   
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id = null;

我想将 JAXB 注释 @XmlID 添加到此 id 但 @XmlID 只能应用于字符串数据类型。我怎么解决这个问题。

4

2 回答 2

0
@XmlID
@Transient
public String getXId(){
    return this.id;
}
public String setXId(String s){
    this.id = Long.parseDouble(s);
}
于 2015-08-28T10:29:50.937 回答
0

将 @XmlJavaTypeAdapter(IDAdapter.class) 与 @XmlID 一起使用,其中 IDAdapter 是

import javax.xml.bind.DatatypeConverter;
import javax.xml.bind.annotation.adapters.XmlAdapter;

public class IDAdapter extends XmlAdapter<String, Long> {

    @Override
    public Long unmarshal(String string) throws Exception {
        return DatatypeConverter.parseLong(string);
    }

    @Override
    public String marshal(Long value) throws Exception {
        return DatatypeConverter.printLong(value);
    }

}
于 2015-08-30T14:30:33.230 回答