Datanucleus JDO + MySQL创建longtext列

时间:2011-12-29 16:04:43

标签: mysql jdo datanucleus

我正在尝试在我自己的Java项目(而不是GAE)中使用DataNucleus的JDO,我需要在我的数据库中存储很长的文本。

我正在使用Eclipse来完成所有脏工作,例如增强和创建模式,但不幸的是,所有String ivars都映射到VARCHAR列。但是我如何让Datanucleus为我创建一个LONGTEXT专栏?

我也尝试了@Colunn注释,但我仍然得到VARCHAR

    @Persistent
    @Column(name="COMPONENT", jdbcType="LONGVARCHAR", length=1000000)
    private String component;

我也尝试将LONGTEXT指定为jdbcType,但Schematool告诉我,该数据类型无法使用。

提前谢谢你,
新年快乐,
最好的问候,
提莫菲。

2 个答案:

答案 0 :(得分:2)

LONGTEXT不是 JDBC 类型。它们都清楚列在http://docs.oracle.com/javase/6/docs/api/java/sql/Types.html

DataNucleus日志告诉您哪种JDBC类型可用用于该JDBC驱动程序(因为它将该信息提供给利用软件)。它选择将JDBC类型LONGVARCHAR映射到“LONG VARCHAR”IIRC(使用SchemaTool“dbinfo”很容易看到)。显然,您可以将模式生成为文本文件,并在应用之前自行更新。

答案 1 :(得分:0)

@Persistent
@Column(name="COMPONENT", jdbcType="CLOB")
private String component;

数据类型CLOB映射到中文文本。但是一旦创建了数据库,您就可以将其更改为LONGTEXT