Наличие этой сущности Person в Java:
@Data
@Entity
@NoArgsConstructor
@XmlRootElement(name = "Person")
@XmlAccessorType(XmlAccessType.FIELD)
public class Person implements Serializable {
@EmbeddedId
private PersonIdentity persondentity;
private String name;
private Boolean active;
private Boolean closed;
@XmlJavaTypeAdapter(DateAdapter.class)
@XmlAttribute(name = "DateBirth")
private Date birth;
@XmlAttribute(name = "PersonName")
private String personaName;
}
и PersonIdentity, который действует как составной ключ:
@Data
@NoArgsConstructor
@Embeddable
public class PersonIdentity implements Serializable {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@XmlAttribute(name = "PersonId")
private String personId;
}
Я пытаюсь сопоставить такой XML-код с классом Person:
<?xml version = "1.0" encoding = "UTF-8"?>
<Person personId = "2017PIOE-A132" PersonName = "John" DateBirth = "19Apr2018 18:53" />
Вначале без составного ключа (@EmbeddedId) я мог сопоставить объект, теперь с PersonIdentity, действующим в качестве первичного ключа, я могу сопоставить другие свойства, но не это, что я делаю неправильно?
Я добавил эти теги, потому что думал, что это связано (извините, я новичок в Java). Я видел этот пример, но думаю, что это не то. Мне нужно сопоставить personId и преобразовать его в тип PersonIdentity, я также пробовал использовать @XmlJavaTypeAdapter, но он все еще не работает. Кроме того, я использую Intellij (я не знаю, совместим ли MOXy)




Какое отношение этот вопрос имеет к jpa или гибернации? Если я правильно понимаю, вы, по сути, спрашиваете, как сгладить структуру объекта при маршалинге объекта в XML, на который уже дан ответ здесь