2014-10-16 9 views
0

У меня таблица расписания в базе данных. Идентификатор расписания в качестве первичного ключа получил автоинкремент. В таблице расписания есть другая задача coloumnsNo, Taskphase, taskdescription и т. Д. Каждый раз, когда запись в расписании сохраняется, я хотел проверить значение taskNo и taskphase в таблице. Если значение такое же, как и в новой записи расписания, оно не должно позволять сохранять. Это означает, что проверка дублирует запись задачиNo и taskphase.решение для проектирования объекта спящего режима

Сначала я решил создать объект как составной первичный ключ (taskno taskphase). Но я отказался от этой попытки, поскольку эти столбцы могут понадобиться для редактирования.

Каков наилучший способ сделать этот вид проектирования в спящем режиме?

+0

Похоже, у этого сообщения есть ответ, который вам нужен http://stackoverflow.com/questions/2786941/best-way-to-detect-duplicates-when-using-spring-hibernate-template –

ответ

1

Я думаю, что вы можете пойти с двумя подходами широкого смысла

1) Пусть база данных делают проверки уникальности, просто положить в уникальном ограничении на колонке, при вставке повторяющегося значения, база данных выдает ошибку, которая вы можете распространяться в пользовательский интерфейс.

2) Приложение выполняет проверку, возможно, вам нужно будет прочитать во всех задачахNo и taskphases, а затем прокрутить их, чтобы найти, если вновь вставленное значение является дубликатом или нет.

Если количество строк очень велико, рассмотрите возможность использования какой-либо ленивой загрузки из базы данных, например, с помощью набора результатов или тому подобного.

0

u может попытаться добавить интерфейс проверки перед фиксацией сохранения. как:

`findByTaskNoAndTaskPhase(String taskNo, String taskphase);` 

хочет у действительно хочет базы на результате интерфейса.

Смежные вопросы