|
|
|
[JPA] Primary key и Sequence
|
|||
|---|---|---|---|
|
#18+
Есть сущность User, у которого поле Id в базе (Oracle database) заполняется на триггере значением из объекта Sequence с именем "USER_ID_SEQUENCE". В классе сущности User'a поле id описано следующим образом: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Я вставляю пользователя вот в таким методом: Код: java 1. 2. 3. 4. 5. 6. Как понятно из кода, хочу вернуть id вставленного пользователя. В итоге наблюдается неожиданное поведение. После вставки User'а смотрим в базу: Код: plsql 1. дает результат 4. Это количество пользователей, находящихся в таблице ДО вставки данного пользователя. Вывод: Sequence не инкрементировался на вставке. Но это ещё не всё. Пользователь в базе вставляется со значением ключа 154 , а в методе addUser в userId возвращается значение аж 254 . Подскажите пожалуйста, чем может быть вызвано такое поведение? Кто-нибудь сталкивался с подобной проблемой? Возможно, я чего-то не понял в плане политики генерации значения ключа. Заранее благодарен. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 12:02:26 |
|
||
|
[JPA] Primary key и Sequence
|
|||
|---|---|---|---|
|
#18+
Добрый день, YetAnotherEntity! > Есть сущность User, у которого поле Id в базе (Oracle database) > заполняется на триггере Для начала убери триггер. Или заполняй ID в нём только если он null > Я вставляю пользователя вот в таким методом: > > @Override > public long addUser(User user) { > entityMgr.persist(user); // ссылка на EntityManager хранится в поле данного "DAO" класса. А вот зря. Кстати, persist не выполняет вставку. Нужен ещё merge. Ну и flush, хотя он и выполняется автоматом. > Кто-нибудь сталкивался с подобной проблемой? Возможно, я чего-то не > понял в плане политики генерации значения ключа. Вообще странное поведение, но две вышеуказанные вещи поправь. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 12:07:21 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=272&tid=2131074]: |
0ms |
get settings: |
12ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
43ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 298ms |
| total: | 471ms |

| 0 / 0 |
