JAXB:使用@XmlID和Hibernate @Id

时间:2015-08-28 10:21:29

标签: jaxb jaxb2 jaxb2-basics

我有以下hibernate属性:

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用@XmlJavaTypeAdapter(IDAdapter.class)以及IDDapter所在的@XmlID

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);
    }

}