2015-08-28 87 views
1

沿着我有以下Hibernate屬性:JAXB:使用@XmlID與Hibernate @Id

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

我要添加註釋JAXB向@XmlID這個ID,但@XmlID只能適用於字符串數據類型。我怎麼解決這個問題。

回答

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

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