そこで、いくつかのオブジェクトを SQL に永続化したいと考えています。これは私のテーブルです:
リーリー現在、私は JpaRepository を使用する Spring Boot アプリケーションに取り組んでいます。これは私のクラスです。
リーリー私のリポジトリ クラスは次のようになります:
リーリーこれで、実際にこれに当てはまるコードができました。
最初にコンストラクターを呼び出し、次に標準の .save() メソッドを呼び出します。
リーリー名前、数、ファイル URL は正しく生成されます。 .save() ステートメントの前にデバッグと評価を行ったので、これを知っています。同じスクリーンショットを添付しました。
しかし、実際に保存を実行すると、この SQL エラーが発生します。いくつかのログも印刷しました。すべての値が null に設定されているようです:
リーリーP粉6383439952023-12-06 12:51:41
問題が解決しました。バインド時にすべてのパラメータが VARCHAR として扱われることがわかりますが、そうではありません。
コード内の別の場所に、コンバータというラベルが付けられています。
@Converter(autoApply= true)
. このコンバータは VARCHAR フィールドで動作し、すべてのエンティティのすべてのフィールドに自動的に適用されます。これは私の側では意図的ではありませんでした。
自動的に適用されるコンバーターが必要な場合は、@Column
アノテーションでさらにプロパティを追加指定することで、一部のフィールドでこのコンバーターをオーバーライドできます。以下は私にとってうまくいった変更です。