Таблица самосправок Hibernate не сохраняет родительский идентификаторJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Таблица самосправок Hibernate не сохраняет родительский идентификатор

Сообщение Anonymous »

Я пытаюсь сохранить как дочерних элементов, так и их родителей за один раз в таблице самоссылки. Но после сохранения дочерние строки в базе данных имеют нулевые родительские идентификаторы. Сущность выглядит следующим образом:

Код: Выделить всё

@Entity
@Table(name = "category")
@Data
@EqualsAndHashCode(of = "id")
@ToString(of = "id")
public class Category {

@Id
@Column(name = "id", updatable = false, nullable = false)
@GeneratedValue(generator = Generator.UUID2_GENERATOR_NAME)
private UUID id;

@Column(name = "main_category_id")
private UUID mainCategoryId;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "main_category_id", insertable = false, updatable = false)
private Category mainCategory;

@OneToMany(mappedBy = "mainCategory", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List subCategories;

@Column(name = "user_id")
private UUID userId;

@Column(name = "name")
private String name;
}
Я устанавливаю дочерние и родительские элементы в обоих направлениях, но main_category_id в базе данных сохраняется как нулевое.
Код для сохранения выглядит следующим образом:

Код: Выделить всё

    @Transactional
public List get(UUID userId) {
List categoriesToSave = new ArrayList();
for (YoungWithPetCategories cat : YoungWithPetCategories.values()) {
Category category = new Category();
category.setName(cat.name());
category.setUserId(userId);
List subCategories = new ArrayList();
for (String subCat : cat.getSubCategories()) {
Category subCategory = new Category();
subCategory.setName(subCat);
subCategory.setMainCategory(category);
subCategory.setUserId(userId);
subCategories.add(subCategory);
}
transactionCategory.setSubCategories(subCategories);
categoriesToSave.add(transactionCategory);
}
categoryRepository.saveAll(categoriesToSave);
}

Я пытался спасти детей, а не родителей, и сохранить их всех сразу.
Можно ли вообще сохранить такую ​​ссылку на себя сущности одним выстрелом или мне следует сохранить их отдельно?

Подробнее здесь: https://stackoverflow.com/questions/774 ... -parent-id
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»