|
|
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Хотел попробовать хранить не формализованные документы в базе в поле bytea, сохранил для пробы картинку в базу В сущности написал: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. При выполнении Rest запроса выходит ошибка: Caused by: org.postgresql.util.PSQLException: Bad value for type long : \xffd8ffe11ffe4578696600004d4d002a00000080006011200030000000100010000011a00050000000100000056011b0005000000010000005e ......................................................................................................................................................................................... 2800a28a2800a28a2800a28a2800a28a2800a28a2803ffd9 at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2992) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2164) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:379) at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:367) at org.jboss.jca.adapters.jdbc.WrappedResultSet.getBlob(WrappedResultSet.java:573) at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$1.doExtract(BlobTypeDescriptor.java:65) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1696) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1628) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.getRow(Loader.java:1515) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:726) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.processResultSet(Loader.java:953) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.doQuery(Loader.java:921) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] at org.hibernate.loader.Loader.doList(Loader.java:2554) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] ... 90 more Как правильно описать сущность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:12 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Еще пробовал так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. и так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ошибка та же ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:19 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
У вас в работе с Postgres косяк, а не в JBoss + Spring + JPA + Hibernate http://stackoverflow.com/questions/2069541/postgresql-jdbc-and-streaming-blobs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:30 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
AFAIK Дык hibernate и должен скрывать "работу с Postgres" IMHO Странно это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:43 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevAFAIK Дык hibernate и должен скрывать "работу с Postgres" Точно так же как и JDBC. А по факту оказывается что bytea это такой особый тип. Или в драйвере косяк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:51 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
BlazkowiczУ вас в работе с Postgres косяк, а не в JBoss + Spring + JPA + Hibernate http://stackoverflow.com/questions/2069541/postgresql-jdbc-and-streaming-blobs https://www.microolap.com/products/connectivity/postgresdac/help/tipsandtricks_byteavsoid.htm в том то и дело что документы то небольшие планируются при использовании типа OID сохраняется только ссылка, а данные хранятся в pg_largeobject system table. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:54 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Caused by: org.postgresql.util.PSQLException: Bad value for type long : \xffd8ffe11ffe4578696600004d4d002a00000080006011200030000000100010000011a00050000000100000056011b0005000000010000005e ......................................................................................................................................................................................... 2800a28a2800a28a2800a28a2800a28a2800a28a2803ffd9 at org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2992) Идем и смотрим сорцы http://www.postgresql.org/message-id/attachment/14539/AbstractJdbc2ResultSet.java Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Видим, что к BLOB'ам данный метод (как и явствует из названия и текста ошибки) НИКАКОГО отношения не имеет. Почему-то Hibernate считает что у данной колонки тип long. Вроде, в приведенных анотациях, тип поля LOB, а не long. Поскольку кусок кода и проект не полный, откуда взялся long можно только гадать на хрустальном шаре. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:55 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevAFAIK Дык hibernate и должен скрывать "работу с Postgres" IMHO Странно это Использую JPA Repository и он по идее должен упрощать работу с такими полями как bytea до нельзя ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:55 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТочно так же как и JDBC. А по факту оказывается что bytea это такой особый тип. Или в драйвере косяк. Подозреваю, косяк у автора топика. Где, когда и в чем, отсюда не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:56 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Аннотация для hibernate так же не помогает @Type(type = "org.hibernate.type.BlobType") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:58 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Х.з. Может проект не корректно собирается. Какие-то старые файлы остались. И так далее.... Если вдруг увидел люк, не волнуйся, это глюк ( C ) народная мудрость IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:01 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
С другой стороны: FlyHippoat org.postgresql.jdbc2.AbstractJdbc2ResultSet. getBlob (AbstractJdbc2ResultSet.java:379) Х.з. Странно. Разбираться нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:09 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevХ.з. Может проект не корректно собирается. Какие-то старые файлы остались. И так далее.... IMHO Спецом свежий проект накидал ... Ща еще новый объект с нуля сделаю, чтобы только поле bytea было и id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:22 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
BlazkowiczУ вас в работе с Postgres косяк, а не в JBoss + Spring + JPA + Hibernate http://stackoverflow.com/questions/2069541/postgresql-jdbc-and-streaming-blobs Ты прав. Декомпилированный код postgresql-9.3-1102.jdbc41.jar Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. IMHO Авторы PostgreSQL JDBC драйвера уроды и дебилы. Получается, что только тип OID ((( Но это какой-то бред. В нормальных БД (Oracle), BLOB он и есть BLOB. И пофиг, как он на сервере хранится. Это дело сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:22 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevС другой стороны: FlyHippoat org.postgresql.jdbc2.AbstractJdbc2ResultSet. getBlob (AbstractJdbc2ResultSet.java:379) Х.з. Странно. Разбираться нужно. postgresql-9.3-1102.jdbc41.jar версия драйвера, а тут почему то на jdbc2 указывается .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:23 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Смотришь в сорцы и понимаешь, какая б.... помойка. По сравнению с коммерческими СУБД. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Целиком на клиента вычитывает ((( а если у меня там гигабайты? Вроде же, имею право ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:41 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FlyHippoLeonid KudryavtsevХ.з. Может проект не корректно собирается. Какие-то старые файлы остались. И так далее.... IMHO Спецом свежий проект накидал ... Ща еще новый объект с нуля сделаю, чтобы только поле bytea было и id. Без @Lob заработало нормально, сервис вернул последовательность байт, но не то что лежит в базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:51 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
FlyHippoИспользую JPA https://virgo47.wordpress.com/2008/06/13/jpa-postgresql-and-bytea-vs-oid-type/ JPA, PostgreSQL and bytea vs. oid type IMHO Не доработка в JDBC драйверах. Брать напильник и б...ь дописывать. Вроде всего одного if и простейшего класса (строк на 200-300 максимум) не хватает. Было бы мне нужно, может и допилил бы. Но у нас проект с PostgreSQL (под сотню гигов блоб'ов) пока застрял на мертвой точке. Ну и сорцы JDBC драйвера производят впечатление помойки ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:59 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevПочему-то Hibernate считает что у данной колонки тип long. Нет не считает. Смотрите стэктрейс внимательнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:49 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Данная "фича", даже на сайте зарегистрирована. И... как я понимаю... с 2005 года воз и ныне там ((( https://jdbc.postgresql.org/development/todo.html#Ideas [] Allow Blob/Clob to operate on bytea/text data. ref → ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 14:37 |
|
||
|
Re: JBoss + Spring + JPA + Hibernate хранение документов в PostgreSQL
|
|||
|---|---|---|---|
|
#18+
Обновлю за автора топика. Пока на данный момент IMHO: 1. Читать документацию PostgreSQL. PostgreSQL тип bytea != Oracle типу BLOB ! Он, скорее, равен Oracle типу RAW (только лимит 1 Gb вместо 4000 байт) 2. Полноценные BLOB'ы в PostgreSQL делаются через одно место, откуда обычно растут ноги. Читать раздел доки PostgreSQL 9.4.0 Documentation IV. Client Interfaces Chapter 32. Large Objects 3. Соответственно, более корректное объявления типа bytea в хибернейте это @Type(type = "org.hibernate.type.BinaryType") возможно нужно как-то по другому, но вроде такое съело. p.s. Как вчера посмотрел поближе на код, документацию, сайт проекта.... понял, что нужно срочно нажраться. Т.к. "вера в человечество" ( C ) Остап-Сулейман-Берта-Мария-Бендер-бей потеряна окончательно ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2015, 18:42 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38922684&tid=2125614]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
134ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 439ms |

| 0 / 0 |
