JAXB:将@XmlID 与 Hibernate @Id 一起使用

JAXB: using @XmlID along with Hibernate @Id

我有以下休眠 属性:

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

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

@XmlID
@Transient
public String getXId(){
    return this.id;
}
public String setXId(String s){
    this.id = Long.parseDouble(s);
}

使用 @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);
    }

}