use*_*784 9 mysql postgresql database-design hibernate jpa
问题如下:我们使用带有注释的hibernate作为O/R Mapper.
一些@Column注释看起来像:
@Column(columnDefinition = "longblob", name = "binaryData", nullable = true)
要么
@Column(columnDefinition = "mediumtext", name = "remark", nullable = true)
columnDefinition属性是特定于mysql的
例如,在postgres上,columnDefinition值应为"bytea"和"varchar(999999)"
而在oracle上可能还有别的东西.
当前在Schema Export时出现问题,例如在创建DDL语句时.
我能想到的可能的解决方法是 - 为DDL语句破解一些为文本替换的JDBC驱动程序(例如longblob-> bytea).这很难看,但会以某种方式工作 - 使用hibernate xml配置而不是注释.这可能会奏效,但我更喜欢注释
有人知道其他选择吗?Hibernate特定的解决方法是可以的,例如,如果columnDefinition属性可以包含方言特定值,例如
@Column(columnDefinition = "mysql->mediumtext, postgres->varchar(999999)", name = "remark", nullable = true)
谢谢霍尔格
为什么不使用与数据库无关的注释,例如:
@Lob
(在一个byte[]
或一个String
财产上)@Column(length=90000)
(在String
物业上)并查看将在数据库中生成哪些列.他们很可能是你想要的类型.
归档时间: |
|
查看次数: |
17221 次 |
最近记录: |