При вызове CRUD проверьте, существует ли «родитель» с read или join? - PullRequest
1 голос
/ 09 марта 2010

Все мои объекты не могут быть удалены - только деактивированы, поэтому они не отображаются ни в каких методах чтения (SELECT ... WHERE active=TRUE).

Теперь у меня есть несколько таблиц 1: M для этих объектов, для которых могут быть выполнены все операции CRUD.

Что эффективнее или лучше?

Мое первое решение: Чтобы добавить ко всем операциям CRUD:

UPDATE ... JOIN entity e ... WHERE e.active=TRUE

Мое второе решение: Перед всеми операциями CRUD проверьте, активен ли объект:

if (getEntity(someId) != null) {
    //do some CRUD
}

В getEntity есть только SELECT * FROM entity WHERE id=? AND active=TRUE.

Или любое другое решение, рекомендация, ...?

Ответы [ 2 ]

1 голос
/ 09 марта 2010

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

0 голосов
/ 09 марта 2010

Я бы переместил все деактивированные сущности в отдельную таблицу и не беспокоился бы об их активности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...