2011-12-29 91 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

相關問題