JAXB: использование @XmlID вместе с Hibernate @Id

У меня есть следующее свойство гибернации:

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

Я хочу добавить аннотацию JAXB @XmlID к этому идентификатору, но @XmlID можно применять только к типам данных String. Как я могу решить эту проблему.


person Anurag Sharma    schedule 28.08.2015    source источник


Ответы (1)


Используйте @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);
    }

}
person Anurag Sharma    schedule 30.08.2015