странное с jdbc postgres драйвером

Dec 17, 2008 16:15

Сервер Jboss-5.0.0.GA-jdk6, фреймворк Seam 2.1 ( Read more... )

jdbc

Leave a comment

Comments 19

kefirfromperm December 17 2008, 13:24:58 UTC
Как вы сие определили?

Не знаю как postgresql-jdbc2ee.jar, но postgresql-8.3-604.jdbc4.jar работает идеально.

Reply

sushilshik December 17 2008, 13:44:34 UTC
Вот ругается ( вставляю запрос из лога в psql - тоже ругается) (запрос в самом конце лога ( ... )

Reply

kefirfromperm December 17 2008, 13:49:25 UTC
Этот запрос имеет мало общего с реальностью. Это компиляция из запроса и передаваемых данных, чтобы ЧЕЛОВЕКУ было удобнее. Ваша проблема не в том что вы думаете. Скорее всего нарушение констрэйнтов или ошибки в триггере или еще где-то.

Reply

sushilshik December 17 2008, 14:47:54 UTC
Ага, вот ошибка:

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


lexicore December 17 2008, 13:30:04 UTC
Это похоже на Hibernate'овские настройки. Диалект правильно проставлен?
true/false vs. 1/0 часто проставляется в свойстве:

hibernate.query.substitutions true=1, false=0

Reply

sushilshik December 17 2008, 14:05:31 UTC

org.hibernate.ejb.HibernatePersistence
java:/koltso7Datasource







Reply

lexicore December 17 2008, 15:04:30 UTC
Настройки из всяких hibernate.properties имплицитно загружаться могут. Я бы трассировал на заполнении параметров в PreparedStatement.

У нас с PostgreSQL все работает нормально.

Reply

sushilshik December 17 2008, 19:13:13 UTC
Спасибо!
Оказалось надо было у accountId к @GeneratedValue добавить (strategy=GenerationType.SEQUENCE)

Reply


pamir75 December 17 2008, 13:37:48 UTC
Пример кода приведите.

Reply

sushilshik December 17 2008, 19:13:27 UTC
Спасибо!
Оказалось надо было у accountId к @GeneratedValue добавить (strategy=GenerationType.SEQUENCE)

Reply

lexicore December 18 2008, 09:16:57 UTC
Ну так что оказалось-то, оказалось-то что? Напишите что оказалось-то, что ж вы не пишете, что оказалось? Очень интересно, что оказалось, напишите пожалуйста.

Reply

sushilshik December 19 2008, 00:27:34 UTC
Насколько я понял по дефолту конкретно для постгреса
@GeneratedValue не подразумевает (strategy=GenerationType.SEQUENCE) и это нужно вручную прописывать. Иначе ключ вставляюется со значением 1 независимо от того, что в таблице уже есть запись с таким ключем.
В HSQL насколько я понимаю, все работает правильно и (strategy=GenerationType.SEQUENCE) прописывать не надо.

Эта ошибка проявилась в seamspace - дефолтном примере к фреймворку Seam 2.1.

Reply


Leave a comment

Up