4

spring-roo エンティティで、記事のコンテンツを記録するコンテンツ フィールドを定義します。

@NotNull
private String content;

しかし、mysql フィールドでは varchar(255) にマップされ、記事の内容を記録するには短すぎるため、次の例外がスローされました。

ERROR org.hibernate.util.JDBCExceptionReporter - Data truncation: Data too long for column 'content' at row 1

私の質問は、mysql の大きな文字列フィールド タイプは何ですか? (access db では "memo" です)、Spring Roo でこのアノテーションを定義して、より多くのデータを記録するにはどうすればよいですか? ありがとう

4

2 に答える 2

5

1つのオプションは、サイズ注釈を追加することです。

@NotNull
@Size(max = 500)
private java.lang.String content;

別のオプションは、LOBフィールドを使用することです。

@NotNull
@Lob
private byte[] content;

約255文字を超える文字列フィールドが必要な場合は、通常、LOBフィールドを使用します。ただし、通常、LOBフィールド内のデータを検索することはできないことに注意してください。

于 2012-07-30T17:18:00.963 に答える
1

試す

@Column(columnDefinition="varchar(255)")
于 2012-07-30T20:06:15.917 に答える