2011-12-29 92 views
0

我想在我自己的Java项目(而不是GAE)中使用DataNucleus的JDO,并且我需要在我的数据库中存储相当长的文本段。datanucleus JDO + MySQL创建longtext列

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

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

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

我也试过指定LONGTEXTjdbcType,但Schematool告诉我,这是数据类型不能使用。

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

回答

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”可以轻松看到)。显然,您可以将模式生成为文本文件并在应用之前自行更新。

+0

谢谢您的回复。至于将模式生成为一个文件,然后在应用之前对其进行编辑,我真的很喜欢所有“仅仅发生”,没有我的交互。据我了解,没有办法告诉DataNucleus使用LONGTEXT类型,是吗?但是,我可以使用特定的Java类型(如谷歌的文本)或写我自己的专门映射到LONGTEXT? – Ibolit 2011-12-30 08:05:20

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

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

相关问题