JCR ノードのstring
プロパティをdouble
JCR-SQL2 の値と比較しようとしています。しかし、値をstring
sとして比較しています。
例えば:
SELECT * FROM [nodex] as x where x.propertyY <= 20.50
これpropertyY
がstring
定義の です。
CASE でこれを試しましたが、まだ動作しません。double
プロパティ定義を変更せずに比較できますか?
JCR ノードのstring
プロパティをdouble
JCR-SQL2 の値と比較しようとしています。しかし、値をstring
sとして比較しています。
例えば:
SELECT * FROM [nodex] as x where x.propertyY <= 20.50
これpropertyY
がstring
定義の です。
CASE でこれを試しましたが、まだ動作しません。double
プロパティ定義を変更せずに比較できますか?
標準の JCR-SQL2 にはCAST(value AS DOUBLE)
式がありますが、残念ながら式の右辺でしか使用できません。はい、JCR-SQL2 は通常の SQL ほど柔軟ではありません。
私の知る限り、比較を実行する前にプロパティ値を double に変換する有効な標準的な方法は実際にはありません。double 値を文字列にキャストすると、辞書式の比較が行われますが、もちろんあまり役に立ちません。
他の実装についてはわかりませんが、プロパティがresidual property の場合、 ModeShape はプロパティ値を double に変換します。これは、residual プロパティには定義がなく、したがって型がないためです。他の実装ではこのように動作しない可能性が非常に高いです。