我在使用Hibernate和PostgreSQL進行生產和HSQLDB測試時遇到了問題。
我使用自頂向下的方法讓Hibernate創建數據庫模式。
我也使用註釋;的hibernate.cfg.xml的映射部僅包含上的PostgreSQL線等
<mapping class="package.subpackage.ClassName" />
休眠默認字符串變量字符改變(255),這是不夠的我在一些情況下,所以我必須重新定義使用
手動某些列@Column(columnDefinition = "TEXT")
。
但是,TEXT類型對HSQLDB無效,因此無法創建這些表。
任何人都可以幫助解決這個問題嗎?Hibernate postgresql/hsqldb TEXT列不兼容問題
回答
處理這個具體問題的最簡單的方法可能是在所有不使用columnDefinition,而是明確地與指定列長度(例如)
@Column(length=10000)
這也可能是你能代替與 @Lob(type = LobType.CLOB)
但我不確定在HSQLDB中正確支持。在Postgres中它應該給你你的TEXT類型。
是啊,thanx,長度是訣竅! – Nemanja 2010-11-18 13:30:21
是的,這是最簡單的解決方案,但我更喜歡使用HSQLDB和Postgres兼容模式。 – 2012-10-25 11:28:08
是的,你有一個真的很大問題。
不要使用一個數據庫引擎進行測試,另一個用於生產。
你可以遇到你從未夢想過的問題。
是的,thanx,我記住了這一點,並組織了測試,以便它們可以輕鬆地在兩個數據庫上運行。但最近我有了這個小小的變化,hsqldb開始出現問題。 – Nemanja 2010-11-19 10:46:58
是和否。同意測試環境**應與生產環境完全相同。但是單元測試是不同的:使用內存數據庫(如Apache Derby或HSQLDB)非常好。更重要的是:有很多優點。 – 2012-10-25 11:09:40
考慮到您必須在許多環境中部署工件的項目類型,此評論可能是使用多個數據庫引擎進行測試和生產的最佳參數。 – 2014-06-25 15:39:13
HSQLDB 2.1及更高版本具有PostgreSQL兼容模式,並支持此模式下的TEXT數據類型。
同意@fredt。 TEXT數據類型不是標準的SQL類型,而是某些引擎支持的擴展名。
啓用PostgreSQL兼容模式在您的連接參數中使用sql.syntax_pgs=true
。
讓H2在兼容模式下使用PostgreSQL工作(對junit測試有用)。
# JDBC Driver
jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:mem:play;MODE=PostgreSQL;TRACE_LEVEL_SYSTEM_OUT=2;DB_CLOSE_DELAY=-1;IGNORECASE=TRUE;INIT=CREATE TABLE IF NOT EXISTS PG_CLASS (RELNAME text, RELKIND text);
jdbc.username=sa
jdbc.password=
# general hibernate options
hibernate.database=h2
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
創建表PG_CLASS是必需的,以允許Hibernate/JPA正常工作。但除此之外 - 非常無縫。
- 1. Hibernate jars兼容性問題
- 2. 設計不兼容問題
- 3. CLS兼容問題
- 4. 兼容性問題
- 5. 兼容性問題
- 6. 瀏覽器兼容性問題列表?
- 7. method =「post」enctype =「text/plain」不兼容?
- 8. OpenGL問題:'不兼容'vs'找不到'
- 9. -webkit-text-security兼容性
- 10. Spring 4.2.3.RELEASE和Hibernate 5.0.4.Final兼容性問題
- 11. 與asm和hibernate和cglib的兼容性問題......?
- 12. 不兼容類型的問題
- 13. 瀏覽器不兼容問題
- 14. JavaScript的不兼容性問題與IE8
- 15. Symfony 2.5.3和PHP 5.6.0:不兼容問題?
- 16. Make 3.82 - 向後不兼容問題?
- 17. Sqlite和Windows RT不兼容問題
- 18. python matplotlib和libpng不兼容問題
- 19. Chrome上的HTML不兼容問題
- 20. .Net框架不兼容問題
- 21. PHP兼容性問題
- 22. Google Play兼容性問題
- 23. Xoom兼容性問題
- 24. 兼容性問題iAd Banner?
- 25. XCode:iOS兼容性問題
- 26. iPhone 4.0兼容性問題
- 27. sdk兼容性問題
- 28. 黑莓兼容性問題
- 29. Drupal:IE兼容性問題
- 30. 兼容性問題是IE10
您是否嘗試過使用Postgres進行測試呢?如果是,你遇到了什麼樣的問題? – 2010-11-18 11:49:39
是的,我也使用Postgres進行測試。沒有問題,只有hsqldb不兼容問題 – Nemanja 2010-11-19 10:49:20