Я пытаюсь создать измерение моего ObjectX, которое в свою очередь может содержать список
Так вот мой ObjectX:
@Table(name = "object_x")
@Entity
@Data
@Builder(toBuilder=true)
@AllArgsConstructor(access = AccessLevel.PACKAGE)
@NoArgsConstructor(access = AccessLevel.PACKAGE)
public class ObjectX implements Serializable {
private static final long serialVersionUID = -28398L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name="parent_id")
private ObjectX parent;
@OneToMany(mappedBy = "parent",fetch = FetchType.LAZY)
private Set<ObjectX> childrens;
@Column(name = "label", nullable = false, insertable = true, updatable = false, length = 40)
private String label;
}
Вот мой репозиторий JPA:
public interface ObjectXDao extends JpaRepository<ObjectXEntity, Long>, JpaSpecificationExecutor<ObjectXEntity> {
@Query("SELECT x FROM ObjectXEntity p WHERE p.parent = null")
List<ObjectXEntity> findObjectXHierarchy();
}
Тестовый пример: test-case-image
Результат:
Я получаю объекты, которые имеют null какparent_id, но в списке их детей null , и у меня в отладке:
com.sun.jdi.InvocationException произошел вызов метода.
Iя уже пытался инициализировать Set: private Set childrens = new HashSet ();
Я также пытался изменить его для типа List.
Здесь аналогичные проблемы, но это не то же самое: JPA: Как иметь отношение «один ко многим» одного и того же типа сущности
Спасибо!