Я немного запутался в отношениях между такими сущностями, как manyToMany, oneToMany и т. Д.
Что меня точно смущает, так это то, что если я удаляю или удаляю запись из базы данных, как мы можем сказать, что удаляю и реляционные сущности.
Например:
manyToMany
Категория Сущность:
manyToMany:
posts:
targetEntity: PostEntity
mappedBy: taxonomies
Сценарий первый:
Если вы удалите или удалите одну из этих категорий, немедленно удалите все отношения в post_taxonomy_relations
таблице. Что мы можем для этого использовать? Каскад или Орфанремал?
Сообщение:
manyToMany:
taxonomies:
targetEntity: TaxonomyEntity
inversedBy: posts
joinTable:
name: post_taxonomy_relations
joinColumns:
post_id:
referencedColumnName: id
inverseJoinColumns:
taxonomy_id:
referencedColumnName: id
Сценарий второй:
Если вы удаляете (уровень БД) только одну из этих записей, удалите связанную сущность в post_taxonomy_relations
oneToMany и manyToOne
Объект шаблона сообщения:
oneToMany:
products:
targetEntity: PostEntity
cascade: ["remove"]
mappedBy: post_template
joinColumn:
name: id
referencedColumnName: template_id
Сценарий первый:
Если вы удалите одну из этих сущностей, удалите также и связанные сообщения. Работает с cascade: ["remove"]
. Но если вы удалите этот объект (уровень базы данных), установите null или удалите связанные сообщения. Как мы можем это сделать?
Сообщение:
manyToOne:
template:
targetEntity: PostTemplateEntity
inversedBy: products
joinColumn:
name: template_id
referencedColumnName: id
Если вы удалите или удалите этот пост, ничего не делайте.
Хорошо, я пытаюсь привыкнуть к этим каскадным операциям.
Каждый ответ, в котором есть образцы, очень ценен для меня. Спасибо.