だから私のエンティティは:
_@Column(name="TS", nullable=false)
private Java.sql.Timestamp timestamp;
_
私の生成されたメタモデルは:
_public static volatile SingularAttribute<MyEntity,Timestamp> timestamp;
_
最大タイムスタンプ値で選択したい:
_Root<MyEntity> root = query.from(MyEntity.class);
Expression maxExpression = cb.max(root.get(MyEntity_.timestamp));
_
しかし、私は以下の理由で許可されていません:
max(Expression<N> x)
数値の最大演算を適用する集計式を作成します。 _<N extends Java.lang.Number>
_式
もちろんTimestamp
はNumber
を拡張しません。
タイプセーフCriteria APIを使用してMAX
列でTimestamp
を実行するにはどうすればよいですか?
maxの代わりに CriteriaBuilder.greatest をタイムスタンプ(および日付、文字列、その他の比較対象)に使用する必要があります。タイムスタンプにMINが必要な場合は、代わりに最小メソッドを使用してください
同様の種類の問題は、より少ない/より大きい/等しい比較で直面する可能性があります。最初の1つはNumberを拡張する引数を受け入れ、2番目の1つは他の比較対象です。