У меня есть таблица:
table:
id
name
phone-area
phone-number
Этот XML
<person>
...
<phone>
<area>111</area>
<number>123-4567</number>
</phone>
</person>
и этот код:
@XmlRootElement(name="person")
@XmlAccessorType(XmlAccessType.FIELD)
@Entity
@Table(name = "person", schema = "test")
public class UserLinkedIn {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
int id;
// ...
@XmlElement(name = "area")
@XmlElementWrapper(name="phone")
@Column(name = "phone-area")
double area;
@XmlElement(name = "number")
@XmlElementWrapper(name="phone")
@Column(name = "phone-number")
double number;
}
Но когда я запускаю его, я получаю эту ошибку:
com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
@XmlElementWrapper is only allowed on a collection property but "com.myproject.user.person" is not a collection property.
this problem is related to the following location:
at @javax.xml.bind.annotation.XmlElementWrapper(namespace=##default, name=phone, required=false, nillable=false)
Я думал, что аннотация "оболочки" позаботится об элементе оболочки, чтобы получить дочернее значение. Я что-то пропустил?
** Я не могу изменить ни схему, ни файл xml.