Этот запрос имеет мало общего с реальностью. Это компиляция из запроса и передаваемых данных, чтобы ЧЕЛОВЕКУ было удобнее. Ваша проблема не в том что вы думаете. Скорее всего нарушение констрэйнтов или ошибки в триггере или еще где-то.
17:34:13,440 ERROR [JDBCExceptionReporter] Batch entry 0 insert into MemberAccount (enabled, member_id, passwordHash, username, accountId) values (1, NULL, tvEgjeega2UODlAt7BoEIQ==, test, 1) was aborted. Call getNextException to see the cause. 17:34:13,441 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 23505 17:34:13,441 ERROR [JDBCExceptionReporter] ERROR: duplicate key value violates unique constraint "memberaccount_pkey" 17:34:13,456 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
не понимаю, ведь accountid - PRIMARY KEY. Почему запрос пытается вставить новую запись с accountid 1, когда в таблице уже есть запись с таким accountid?????
Ну так что оказалось-то, оказалось-то что? Напишите что оказалось-то, что ж вы не пишете, что оказалось? Очень интересно, что оказалось, напишите пожалуйста.
Насколько я понял по дефолту конкретно для постгреса @GeneratedValue не подразумевает (strategy=GenerationType.SEQUENCE) и это нужно вручную прописывать. Иначе ключ вставляюется со значением 1 независимо от того, что в таблице уже есть запись с таким ключем. В HSQL насколько я понимаю, все работает правильно и (strategy=GenerationType.SEQUENCE) прописывать не надо.
Эта ошибка проявилась в seamspace - дефолтном примере к фреймворку Seam 2.1.
Comments 19
Не знаю как postgresql-jdbc2ee.jar, но postgresql-8.3-604.jdbc4.jar работает идеально.
Reply
Reply
Reply
17:34:13,440 ERROR [JDBCExceptionReporter] Batch entry 0 insert into MemberAccount (enabled, member_id, passwordHash, username, accountId) values (1, NULL, tvEgjeega2UODlAt7BoEIQ==, test, 1) was aborted. Call getNextException to see the cause.
17:34:13,441 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 23505
17:34:13,441 ERROR [JDBCExceptionReporter] ERROR: duplicate key value violates unique constraint "memberaccount_pkey"
17:34:13,456 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session
не понимаю, ведь accountid - PRIMARY KEY. Почему запрос пытается вставить новую запись с accountid 1, когда в таблице уже есть запись с таким accountid?????
Reply
true/false vs. 1/0 часто проставляется в свойстве:
hibernate.query.substitutions true=1, false=0
Reply
Reply
У нас с PostgreSQL все работает нормально.
Reply
Оказалось надо было у accountId к @GeneratedValue добавить (strategy=GenerationType.SEQUENCE)
Reply
Reply
Оказалось надо было у accountId к @GeneratedValue добавить (strategy=GenerationType.SEQUENCE)
Reply
Reply
@GeneratedValue не подразумевает (strategy=GenerationType.SEQUENCE) и это нужно вручную прописывать. Иначе ключ вставляюется со значением 1 независимо от того, что в таблице уже есть запись с таким ключем.
В HSQL насколько я понимаю, все работает правильно и (strategy=GenerationType.SEQUENCE) прописывать не надо.
Эта ошибка проявилась в seamspace - дефолтном примере к фреймворку Seam 2.1.
Reply
Leave a comment