3

テキストフィールドでグループ化するときに、条件ビルダーを使用してSQLクエリを作成したいと考えています。場合は、null 値と空の文字列を一緒にフィールドでグループ化したい場合です (null と空の文字列には違いがあることはわかっていますが、それはすでに行われており、論理的には違いはありません)。ここではMySQL GROUP BY NULLとEMPTYのようですが、基準ビルダーでそれをやりたいのですが、そこが問題です。次の例のように、 builder.coalesce(entity.get("value"), "") または builder.literal("") を "" に置き換えて合体を機能させることができませんでした。

public void groupBy(Path path){
    Expression group = builder.coalesce(entity.get("value"), ""); this doesn't work
    Expression<String> empty = builder.literal("");
    group = builder.coalesce(entity.get("value"), empty); this doesn't work either

場合は、休止状態のクエリが作成されたときにこのように書くと、??があります。in query と hibernate は、それらが同じ値であるかどうかわかりません。その式を SELECT と GROUP BY の両方で使用していますが、エラーが発生します: 値は GROUP BY 句に表示されるか、集計関数で使用される必要があります

'' ではなく '' として SQL に変換される一定の空の文字列値を作成するなど、条件ビルダーでこれを行う方法はありますか? または、null 値と空の文字列をグループ化する他の方法。

PostgreSQL、Hibernate、Java を使用しています。

私はすべての答えに感謝します

4

0 に答える 0