0

私の hql クエリの何が問題なのですか?

String queryString = "SELECT A.INITIAL, A.NUMBER, A.OWNR_SCAC , A.INITIAL||A.NUMBER AS CAR," + 
            "A.LESSEE_SCAC, A.TRUK_CNT, A.EQP_TYP_CD, A.AXL_CNT, B.STABILITY_DEV_EQP," +
            "A.C_CNT, A.G_WGT, B.TRUK_AXL_CNT, A.EIN FROM DS.E_UT AS A" +
            "LEFT JOIN DS.E_PRIMARY AS B" +
            "WHERE A.INITIAL||A.NUMBER IN (:carList) AND A.INITIAL IN {:initList) AND A.NUMBER IN (:numberList)" + 
            "AND B.TRUK_AXL_CNT > 0";

エラー:

org.hibernate.hql.internal.ast.QuerySyntaxException: 予期しないトークン: 行 1、列 263 付近

Aその後の話だと思いますFROM DS.E_UT AS A

4

3 に答える 3

2

HQL では、テーブルと列の名前を付けません。代わりに、テーブルと列にマップしたクラスとメンバー変数の Java クラス名とメンバー変数名 (または getter/setter) 名を指定します。

于 2012-05-23T13:41:52.743 に答える
1

新しい行ごとにスペースを追加する必要があると思います。

"A.C_CNT, A.G_WGT, B.TRUK_AXL_CNT, A.EIN FROM DS.E_UT AS A" +
"LEFT JOIN DS.E_PRIMARY AS B"

次のようになります。

A.C_CNT, A.G_WGT, B.TRUK_AXL_CNT, A.EIN FROM DS.E_UT AS ALEFT JOIN DS.E_PRIMARY AS B

「ALEFT」に注意してください

于 2012-05-23T13:44:51.137 に答える
1

あなたのスキーマについて、またはこれがあなたが探しているものであるかどうかは完全にはわかりませんが、結合されたテーブルを一緒にマップすることができます. これにより、作業が少し簡単になり、クエリに明示的に参加する必要がなくなります。

ここに小さな例があります

その例のサンプル クエリは次のようになります。

SELECT p 
    FROM Person 
WHERE p.name like :name 
AND p.address.street like :street
于 2012-05-23T13:50:28.667 に答える