Javax.persistence с компонентом @Entity, сохраняющим int [] как bytea (postgres) - PullRequest
0 голосов
/ 10 марта 2011

В моем текущем проекте у меня есть бин @Entity, среди прочего, с полем int [], которое должно совпадать с полем integer [] в моей базе данных postgres.
Однако после сохранения моего объекта я получаю исключение, подобное этому:

Internal Exception: org.postgresql.util.PSQLException: ERROR: column "drawset_basedata" is of type integer[] but expression is of type bytea
Error Code: 0
Call: INSERT INTO drawset (drawset_id, drawset_basedata, drawset_created, drawset_data) VALUES (?, ?, ?, ?)
    bind => [null, [B@19701da, null, [B@facd93]
Query: InsertObjectQuery(lotoFlow.Drawset[drawsetId=null])
    at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)

Я использовал отладчик, и я ясно вижу, что свойство baseData является инициализированной переменной int [], я не понимаю, почему она поступает в виде байты.
Спасибо!

1 Ответ

1 голос
/ 20 марта 2013

Hibernate и JPA не поддерживают массивы PostgreSQL, поэтому вам лучше всего нормализовать вашу модель или запустить SQL вручную.

Хотя PostgreSQL работает с массивами очень хорошо, многие другие базы данных этого не делают.По этой причине, как правило, не ожидается большой поддержки массивов в структурах кросс-БД.

...