gpt4 book ai didi

mysql - Hibernate 数据库特定的 columnDefinition 值

转载 作者:可可西里 更新时间:2023-11-01 06:29:06 25 4
gpt4 key购买 nike

问题如下:我们正在使用带注释的 hibernate 作为 O/R 映射器。

一些@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 语句执行文本替换(例如 longblob->bytea)的 JDBC 驱动程序。这很难看,但会以某种方式工作- 使用 hibernate xml 配置而不是注释。这可能会奏效,但我更喜欢注释

有人知道其他选择吗? Hibernate 特定的解决方法是可以的,例如如果 columnDefinition 属性可以包含特定于方言的值,例如

@Column(columnDefinition = "mysql->mediumtext, postgres->varchar(999999)", name = "remark", nullable = true)

谢谢霍尔格

最佳答案

为什么不使用与数据库无关的注释,例如:

  • @Lob(在 byte[]String 属性上)
  • @Column(length=90000)(在 String 属性上)

并查看将在数据库中生成哪些列。他们很可能是您希望他们成为的类型。

关于mysql - Hibernate 数据库特定的 columnDefinition 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com