JP30がフィールドタイプとしてdouble
タイプをサポートしていますが、javax.validation.constraints
(つまり@Min/)のBean検証制約がサポートされていない理由を教えてください。 これは丸め誤差によるものだと書類が知っていると知っていますが、フィールドタイプをdouble
にすると、私は明示的な精度についてあまり気にしません。Beanの検証を行う理由最小/最大制約はdouble型をサポートしていませんか?
私がこのジレンマに遭遇したシナリオは、次のとおりです。地球の表面上の点を表すエンティティを持っています。精度が数センチ以内であれば問題ありません。
注釈はダブルタイプをサポートしていないため、残念ながらこれは機能しません。しかし、代わりにBigDecimal
を使用することは、実際には選択肢ではありません。なぜなら、私はいくつかの広範な計算を行っています。私はdouble
で動作するカスタム制約チェックを定義することでその周りに取り組みましたが、どういうわけか、全体のストーリーに欠けているものがあると思います。それで、私は何が欠けていますか?
のいずれかに決定しなければならなかったので、JPAと豆の検証は、2つの完全に独立したAPIであることに注意してください。私はタイトル、いくつかの文言とタグをそれに応じて修正しました。素晴らしい質問の例btw。どのBean検証実装を使用していますか? Hibernate Validator? – BalusC
はい、今はHibernate Validatorを使用しています。 –
実際には、MinまたはMax(少なくともHibernate Validatorでは)でdoubleをアノテートすることができます。ダブルタイプがサポートされています。問題は、制約パラメーターとしてdoubleを指定できないことが原因と思われます。そこにスペックは実際に長い時間を強制する。 DecimalMinとDecimalMaxの使用を検討しましたか?最小値と最大値を文字列として指定できます。 – Hardy