2016-07-07 5 views
0

私は私のエンティティクラスに次のコードを使ったHibernate JPAと春のブートを使用しているためBLOBされるように。ただし、デフォルトの列タイプはVARCHAR(255)であり、ユーザーデータがそれよりも長くなることがあります。私の質問は、列にBLOBまたはTEXTを使用するようにこのテーブルを定義するにはどうすればいいですか?私は直接そこに@Lob注釈を投げ込もうとしましたが動作しません。JPAは、コレクションテーブル<code>user_files</code>が生成され</p> <pre><code>@ElementCollection private Map<String, String> userFiles= new HashMap<>(); </code></pre> <p>ElementCollectionテーブル

+0

マップの内容、キーまたは値は? –

+0

明確になったはずです。マップ値の場合は、ユーザーの入力に基づいており、長くてもかまいません。 – Derek

+0

あなたが試みたと言ったように、 '@ Lob'アノテーションが値に適用されると思います。確かに、_orm.xml_XSDは ' 'の下に' 'を許しているので、それはうまくいくはずです。おそらくあなたのJPAプロバイダに問題を提起するか、私が参照している他の明白な場所がないので彼らのドキュメントを参照してください –

答えて

1

あなたは次のことを試しましたか?

@Column(columnDefinition="BLOB NOT NULL") 
@MapKeyColumn(columnDefinition="BLOB NOT NULL") 

MapKeyColumnLobを参照してください。

+0

ありがとうございました。私は前にこれらの注釈を見つけましたが、最初に作成した表を削除してはいけないと間違っていました。さもなければJPAは新しい設定を使って新しい表を作成しません。あなたの答えは私に再試行を案内し、最終的にそれを理解しました。 – Derek

関連する問題