получить следующий идентификатор - PullRequest
1 голос
/ 07 декабря 2009

Мой вопрос: как получить следующий идентификатор с помощью NHibernate в базе данных mysql для столбца идентификатора с автоинкрементом?

Спасибо

Ответы [ 3 ]

2 голосов
/ 07 декабря 2009

На основании дальнейшего описания, которое вы даете (как ответ?) Ниже, мне кажется, что вы действительно ищете функцию NHibernate для автоматического считывания идентификаторов, сгенерированных базой данных: identity

Это сообщит NHibernate, что значение идентификатора определяется базой данных при вставке, оно не будет отправлять значение как часть своего оператора INSERT и будет считывать значение столбца идентификатора после выполнения вставки. Но вы должны сообщить базе данных (в определении таблицы), что она должна автоматически генерировать значение для столбца ID для каждой вставленной записи ...

0 голосов
/ 07 декабря 2009

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

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

Вам также понадобится способ получить последний записанный порядковый номер при перезапуске приложения.

0 голосов
/ 07 декабря 2009

Ты собираешься создать условия гонки, если сделаешь это. Чтобы ответить на ваш вопрос, я не думаю, что у Hibernate есть какой-то конкретный способ предоставить вам эту информацию, поскольку ни одно приложение не может предоставить вам эту информацию. Получив «следующий идентификатор», к тому времени, когда он вернет вам эти данные, он может быть уже недействительным. Самый простой способ, который я могу придумать, - это получить last_insert_id () и добавить +1 к нему.

Почему бы вам не опубликовать больше информации о том, что вы пытаетесь выполнить, и мы можем найти лучшее решение для вас?

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