hibernate对于大字段的支持依赖于数据库的实现。
经常遇到这样的问题,如在oracle下如何把超过4000byte的字符串保存到数据库中,而varchar2的最大长度是4000。看了大半天hibernate对clob的支持,觉得太繁琐了,经过同事的实验,发现仅仅需要将oracle中该字段直接手工alter为clob,而在hibernate中对该字段的映射不变,直接设置为string类型,对于过去为varchar即可,长度保留为4000(似乎不限)。至于原因,应该是oracle的驱动在这方面作的很强大,自动将clob类型解析为hibernate的string。
在mysql下,只需要将hibernate映射对象设置为text即可。
最后,注意hibernate的hibernate.hbm2ddl.auto设置为update,这样oracle的修改才不会丢失.
经常遇到这样的问题,如在oracle下如何把超过4000byte的字符串保存到数据库中,而varchar2的最大长度是4000。看了大半天hibernate对clob的支持,觉得太繁琐了,经过同事的实验,发现仅仅需要将oracle中该字段直接手工alter为clob,而在hibernate中对该字段的映射不变,直接设置为string类型,对于过去为varchar即可,长度保留为4000(似乎不限)。至于原因,应该是oracle的驱动在这方面作的很强大,自动将clob类型解析为hibernate的string。
在mysql下,只需要将hibernate映射对象设置为text即可。
最后,注意hibernate的hibernate.hbm2ddl.auto设置为update,这样oracle的修改才不会丢失.