10 進データに浮動小数点タイプ (float、double、およびそのラッパー・クラス) を使用することはお勧めしません。丸め誤差が生じる恐れがあり、その場合には結果として表示される等号演算子が信頼できなくなってしまいます。 代わりに、BigDecimal を使用してください。
@Id 注釈を使用するのが適切なのは、自然数の主キーが使用可能な場合や、データベース設計者が代理主キー (通常は整数) を使用して、その主キーに記述値がなく、データベース内のアプリケーション・データから派生していない場合です。 一方、複合キーは、対応するデータベース表の主キーが複数列で構成されている場合に役立ちます。複合キーは、@IdClass 注釈または @EmbeddedId 注釈によって定義できます。