2015-02-20 4 views
1

Во-первых, я новичок в спящем режиме. Я разрабатываю приложение для своего офиса, и меня попросили использовать конкретный идентификатор, который должен появиться следующим образом («YEARMONTHDATE» номер инцидента того дня).Hibernate генерирует предопределенный идентификатор объекта

В качестве примера, если инцидент, о котором сообщается 2 февраля 2015 года, и инцидент является третьим днем, идентификатор должен быть как «2015022003».

Мне нужно знать, как это можно сделать в спящем режиме. Самое главное, что последние две цифры должны появиться после проверки последней записи и даты.

+1

Это является нарушением 1NF. Неужели это обязательство, что вы это делаете? – fge

ответ

0

Вы должны инкапсулировать всю эту логику в store procedure, а затем добавить базу данных BEFORE INSERT TRIGGER, чтобы назначить первичный ключ выходному значению вызова хранимой процедуры.

В Hibernate, вы должны использовать генератор с select идентификатора:

@Id @GeneratedValue(generator="trigger-generated") 
@GenericGenerator(
    name="trigger-generated", 
    strategy = "select" 
) 
private String id; 
+0

Большое спасибо. Я попробую это и посмотрю –

+0

Это сработало для вас? –

+0

Я попытался преобразовать свой код java, который у меня был до процедуры магазина. но небольшая проблема. в java я могу разделить мои строки. Но в процедурах магазина есть ли какая-либо функция, которую я могу использовать, чтобы разделить мою весну, чтобы проверить дату? я должен иметь две строки, дату и номер индекса для создания следующего значения –

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