JPA 2, API design, дайте глобус

топ 100 блогов ru_java15.11.2010
    4.10 Bulk Update and Delete Operations

    (...)

    A delete operation only applies to entities of the specified class and its subclasses. It does not cascade to related entities.

    (...)


И знаете чего? Ребята, которые рисуют всяческие ORM и всегда с прибором клали на спеки, внезапно прониклись, прочистили залипшие чакры и сделали, как просили. То есть, если вы фигачите нечто вида "delete from Message m where m.id in (?)" и Message содержит ассоциации, то вы получите исключение внешнего ключа. Потому что, по логике дизигнеров API, вы должны соорудить нечто навроде (краткий вариант кода)

 
     List list = messageDao.getListForId... 
     for(Message msg: list) {
        messageDao.delete(msg);
     }


Если врубить трассировку (ха-ха, не все ORM, к слову, готовы делить своими sql), то вы обнаружите отдельный запрос на удаление на каждую ассоциацию к каждой мессаге. Меж тем в SchemeMedaData вполне верная DDL существует и ничто не мешает сделать по-человечески.

Чем дальше я гляжу в код "hiload, modern designed web application" тем сильнее убеждаюсь, что некоторые серебряные пули уверенно кладут только девелоперов.

Оставить комментарий

Архив записей в блогах:
Самые Популярные Коты Интернета Автор теста Queen de la reanimaR ...
1. В уходящем году (слышь ты, а ну вали отседова!) у меня не слишком складывалось с исполнением желаний. Но с одним желанием таки свезло. Причем, в последние деньки года. Очень часто в эротических снах с обширной поллюцией мне представлялось, как я приезжаю на машине в мебельный маг ...
Для тех, кто недавно интересовался отличием фосфорных бомб от осветительных люстр: дым. Огромное количество ядовитого дыма. Фосфора без дыма не бывает. Израиль использовал белый фосфор в Газе и ...
...
Несколько фактов, которые стоит знать о грядущем ЕВРО 2020 Кто хозяева праздника ? УЕФА ЕВРО-2020 проводится на континенте в новом формате впервые за 60-летнюю историю соревнования, ведь теперь турнир принимают 12 принимающих городов. Будут ли какие-либо сборные ...