Рубрики
Без рубрики

Разница между каскадным и обратным

– – Разница между каскадным и обратным

Автор оригинала: mkyong.

Многие разработчики гибернации путают опцию каскада и ключевое слово inverse. В некотором смысле.. они действительно выглядят очень похожими в начале, оба связаны отношениями.

Каскад против обратного

Однако между каскадом и инверсией нет никакой связи, и то, и другое – совершенно разные понятия.

1. обратный

Это используется для определения того, какая сторона является владельцем отношений для управления отношениями (вставка или обновление столбца внешнего ключа).

Пример

В этом примере владельцем отношений является принадлежность к записям Stockdaily).



    
    ...
    
        
            
        
        
    
    ...

При сохранении или обновлении объекта запаса

session.save(stock);
session.update(stock);

Hibernate будет только вставлять или обновлять таблицу ЗАПАСОВ, без обновления столбца внешнего ключа. Более подробный пример здесь…

2. каскад

В каскаде после выполнения одной операции (сохранение, обновление и удаление) он решает, нужно ли вызывать другие операции (сохранение, обновление и удаление) для других объектов, которые связаны друг с другом.

Пример

В этом примере, это объявлено на биржевых записях.



    
    ...
    
        
            
        
        
    
    ...

При сохранении или обновлении объекта запаса

session.save(stock);
session.update(stock);

Он вставит или обновит запись в таблицу ЗАПАСОВ и вызовет другую инструкцию insert или update) в StockDailyRecord. Более подробный пример здесь…

Вывод

Короче говоря, “обратная” – это решение о том, какая сторона обновит внешний ключ, в то время как “каскад” – это решение о том, какая последующая операция должна выполняться. Оба выглядят очень похожими в отношениях, но это совершенно разные вещи. Разработчикам Hibernate стоит потратить время на его изучение, потому что неправильное понимание концепции или неправильное ее использование приведет к серьезным проблемам с производительностью или целостностью данных в вашем приложении.

Ссылка

1. обратный= “истинный” пример и объяснение 2. пример каскада – сохранение, обновление и удаление

Оригинал: “https://mkyong.com/hibernate/different-between-cascade-and-inverse/”