У меня есть 2 отображения классов (аналог классов JPA):JAXB немаршалинг Сущности - Ссылки нулевые
AElement.java
@XmlType(propOrder = {"name", "children", })
@XmlRootElement(name = "a")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class AElement implements Serializable {
private String name;
private List<BElement> children;
@XmlElement(name = "metadatum")
public List<BElement> getChildren(){
return children;
}
...
}
BElement.java
@XmlRootElement(name = "b")
@XmlType(propOrder = {"name"})
public class BElement implements Serializable{
private String name;
private AElement parent;
...
}
и B находятся в соотношении OneToMany. XML должен выглядеть следующим образом:
<A>
<B></B>
<B></B>
</A>
Если я распаковать XML-сопоставьте его к моим классам JPA и сохраняется это к моим всем базам данных хранятся правильно кроме моих ссылок. Это означает, что B
хранится без внешнего ключа до A
в базе данных.
Я использую JPA с Hibernate. После моих JPA классы:
A.java
@Entity
public class A implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private String name;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "parent")
private List<B> children;
public List<B> getChildren(){
return children;
}
...
}
B.java
@Entity
public class B implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private String name;
@ManyToOne(optional = true)
@JoinColumn(name = "a_id", referencedColumnName = "id")
private A parent;
...
}
Я думаю, что вы должны добавить больше информации о настойчивости, кажется, вопрос JPA. – Xstian
Добавлены классы jpa. – p4tm4n
Вы уверены, что существуют В таблице B столбец 'a_id'? В любом случае для '@ ManyToOne'' optional = true' не требуется, потому что это значение по умолчанию, и вы также можете удалить 'referencedColumnName = "id" 'on JoinColumn. – Xstian