У меня есть объект Hibernate, который имеет рекурсивное отношение к себе (родительские дети). И я использую XML-файл DbUnit для вставки некоторых данных в свои тесты, включая отношения.DbUnit и рекурсивный объект
Тем не менее, на моей тестовой службе, которая запрашивает список parent = null (корни), я также получаю дочерний элемент, указанный в XML, как корень (также имеющий parent = null).
Почему это происходит?
@Entity
@Table(uniqueConstraints = @UniqueConstraint(columnNames={"parent", "name"}))
public class Entity {
@Id
@Column(name = "id", unique = true)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "name", nullable = false)
private String name;
@ManyToOne
@JoinColumn(name = "parent")
private Entity parent;
@OneToMany(mappedBy = "parent")
private List<Entity> children;
}
И набор данных файла XML:
<dataset>
<entity id="1" name="root1" />
<entity id="2" name="root2" />
<entity id="3" name="child" parent="2"/>
</dataset>
При перечислении корней я также получить «ребенка» объект с родителем собственности нуль.
Если я создаю отношения с использованием экземпляров сущностей и сохраняю их, он работает.
Также у меня есть еще одна сущность с отношением «много-к-одному» к другому объекту (без рекурсии), и это работает, как ожидается, с использованием XML-данных DbUnit. Кажется, что у него есть некоторые проблемы с рекурсивными entites.