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);
}
}
我有以下休眠 属性:
@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);
}
}