2012-11-13 9 views
17

オブジェクトをデータベースに保存したい。
私はMySQLデータベースを使用していますが、試してみると「データが列の長さよりも大きい」という例外があります。
休止状態を使用して列の長さを増やすにはどうすればよいですか?最大長で休止状態にある列の長さを設定する方法

+2

あなたはHibernateのマッピングからDBを作成していることを示していますか? – madth3

答えて

47

あなたの列には、あなたがあなたのテーブルを変更する必要がvarchar使用注釈length

@Column(length = 255) 

または別の列タイプ

@Column(columnDefinition="TEXT") 
+0

'タイプが見つからないか、特権が不足しています:TEXT' – xedo

+2

' columnDefinition'はDB依存ですPostgreSQLで動作するものはMySQLで動作しない可能性がありますので参考にしてください:http://stackoverflow.com/questions/16414215/jpa-how- ddl – csharpfolk

0

@Column注釈を使用し、そのlength属性を定義します。参考文献については、Hibernateのマニュアルを参照してください(セクション2.2.2.3)。

0

を使用している場合。 DDL文を使用して列幅を増やします。

あなたが列にLengthアノテーションを使用することができ、ここで

http://dba-oracle.com/t_alter_table_modify_column_syntax_example.htm 
+1

コマンドは同じかもしれないが、ページがOracle用であることを混乱させるOPの間にMySQL – madth3

1

参照してください。これを使用すると、列の長さを最大化または最小化できます。長さ注釈は文字列にのみ使用されます。

@Column(= "NAME" 名前、NULL可能=偽、長さ= 50) @Length(MAX = 50)

public String getName() { 
    return this.name; 
} 
4

@Column(名= Columns.COLUMN_NAME、columnDefinition = "NVARCHAR(MAX)")

最大は、最大ストレージサイズは2^31-1バイト(2 GB)

+0

これはSQL Serverでのみ動作し、PostgreSQLはNVARCHARを持たない(MAX)。代わりに@Lobアノテーションを使用してください:http://stackoverflow.com/questions/16414215/jpa-how-to-set-string-column-to-varcharmax-in-ddl可変長の文字型を無限の長さにする – csharpfolk

関連する問題