【问题标题】:Unlimited String in JDO @ DataNucleus? (H2 DB)JDO @ DataNucleus 中的无限字符串? (H2 数据库)
【发布时间】:2012-03-18 22:12:56
【问题描述】:

我需要存储一个几乎无限的字符串(文档),我无法确定它的长度。我知道有 CLOB,但我在 JDO 中找不到它的实现,只有 JPA。

我试过了:

@Column(jdbcType="CLOB")
private String contents = "";

但是当我运行架构验证工具时,我收到:

SchemaTool 运行过程中抛出异常。有关完整详细信息,请参阅日志。以下可能会有所帮助: SCENE.CONTENTS 列的数据类型不兼容:为 VARCHAR(数据存储),但预期类型为 CLOB(元数据)。请检查datastore中的类型和MetaData中指定的类型是否一致。

我一定错过了一些基本的东西......

【问题讨论】:

    标签: java string jdo h2 datanucleus


    【解决方案1】:

    您在 JDO 中找不到 CLOB 吗? JDO 允许您定义“jdbc-type”,因此您拥有完整的类型。在 JPA 中,你的集合非常有限

    【讨论】:

    • 是的,我试图将JDBC类型设置为CLOB,但是没有任何效果,它仍然说String太长(超过256个字符),定义String的正确方法是什么作为带有 JDO 注释的 CLOB?
    • jdbc-type="clob" 显然,根据 JDO 规范和文档。但是,如果您的表已经定义了 VARCHAR(256),那么它将毫无意义。你没有提供那个细节
    • 好吧,我没有定义它,它都是自动数据核的东西。我用过:@Column(jdbcType="CLOB") String contents = "";更改后我正在删除和创建架构。
    • 查看日志。它告诉你一切......选择了什么映射,生成了什么模式,一切。你没有提供任何类,没有说什么数据库,没有提到你完整的映射细节,所以除了猜测之外没有什么是可能的
    • 我已将日志消息和我的部分代码添加到问题中。我认为有一些通用的解决方案 - 我一定遗漏了一些基本而明显的东西......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多