7
休止状態エンティティのフィールドでオプションを使用できますか?たぶん、いくつかのカスタムユーザータイプですか?Java 8エンティティフィールドのオプション
私はAccesType.FIELD
(私はとにかくAccesType.FIELD
を使用して)を使用する方法でそれを使用できることを知っています。
なぜ私はこれが欲しいですか?さて、私は可能な限りnullから遠く離れていたいと思っています。
休止状態エンティティのフィールドでオプションを使用できますか?たぶん、いくつかのカスタムユーザータイプですか?Java 8エンティティフィールドのオプション
私はAccesType.FIELD
(私はとにかくAccesType.FIELD
を使用して)を使用する方法でそれを使用できることを知っています。
なぜ私はこれが欲しいですか?さて、私は可能な限りnullから遠く離れていたいと思っています。
クラス内のフィールドとして、Optional
を使用しないでください(Hibernateの使用のためかどうかにかかわらず)。
Javadocで述べたように、それは値ベースのクラスであり、したがってシリアライズ可能ではなく、参照等価(==)とIDハッシュコードを使用すると予測できない結果になります。
代わりに、ターゲットクラスのインスタンスを格納することができます(リレーショナルデータベースではnullです)。アクセサリからオプションを返します(ゲッターではなく、Hibernatesがフィールドと同じクラスを返すことを期待しています。よく)。
希望すると、これが役立ちます。
オプションのequalsおよびhashCodeの実装について予測できないことはありますか?彼らはあなたがリンクしているJavadocで明確で確固たる契約を結んでいるようです。 –
ショートカットは残念です。私は等号とハッシュコードを意味するのではなく、==とアイデンティティハッシュコードを意味しました。修正していただきありがとうございます。 – cdelmas