1. ホーム
  2. java

[解決済み] ブール型に0/1ではなくY/Nを格納するようにハイバーネートを設定する(JPAを使用)

2023-07-15 07:46:50

質問

JPA/Hibernateを使用して、以下のような永続化を行うことができますか? Boolean 型として Y/N ? データベースでは (カラムは次のように定義されています。 varchar2(1) . として格納されていますが、現在は 0/1 . データベースはOracleです。

どのように解決するのですか?

私がこれを行う方法を考え出した唯一の方法は、私のクラスのための2つのプロパティを持っていることです。1 つはプログラミング API 用のブール値で、マッピングには含まれていません。このプロパティはゲッターとセッターで、Y/Nのプライベートchar変数を参照します。次に、Hibernate マッピングに含まれる別の保護されたプロパティがあり、そのゲッターとセッターはプライベートの char 変数を直接参照します。

編集:指摘されているように、Hibernateに直接組み込まれている他のソリューションがあります。内蔵のオプションと相性の悪いレガシー フィールドを使用している状況で動作する可能性があるため、この回答を残しています。その上、このアプローチには深刻な悪影響はありません。