【发布时间】:2012-03-02 21:14:47
【问题描述】:
我在一个以 MySQL 模式打开的 H2 数据库实例上使用 DataNucleus 的 JDO 实现。
我需要在一个表中创建由三个字符串组成的项目。最后一个字符串可以是任意长度。我创建了以下对象,除了大于 256 个字符的值之外,它仍然很好。 DataNucleus 自动将大小限制设置为 256:
@PersistenceCapable(objectIdClass=RawItemKey.class)
@Index(name="BEGIN_IDX", members={"prefix", "language", "value"})
public class RawBeginItem {
@PrimaryKey
@Column(length=40)
private String prefix = "";
@PrimaryKey
@Column(length=2)
private String language = "";
@PrimaryKey
@Column(jdbcType="VARCHAR")
private String value = "";
public RawBeginItem() {
}
public RawBeginItem(String prefix, String language, String value) {
this.prefix = prefix;
this.language = language;
this.value = value;
}
...
}
我如何告诉 JDO 第三个字段是任意长度的字符串?我应该使用哪种 SQL 类型?我该如何申报?谢谢。
【问题讨论】:
-
我已经尝试过@Column(length=Integer.MAX_VALUE) 并且它似乎有效,但这是正确的方法吗?
-
如何告诉 RDBMS 列是无限长度的? CLOB ?
标签: java mysql string datanucleus