0

私はHQLが初めてで、このことは私を混乱させます。だから、これは私が持っている機能です:

public List<Map<String, Object>> getMyQuery(List<Country> country){
    String hql = "SELECT DISTINCT new map(a as accounts) ";
    hql += "FROM Account a WHERE a.location_id in "
                + "( "
                + "SELECT location_id FROM Location l WHERE l.address_id in "
                + "("
                + "SELECT id FROM Address adr WHERE adr.country_id in (:country)))";

    }
    Query query = getSession().createQuery(hql);
    if(country != null){
        query.setParameterList("country", country);
    }
    return query.list();
}

私のログ ファイルでは、次の理由でクエリを解決できないことがわかりました。

 Caused by: org.hibernate.QueryException: could not resolve property: country_id of: com.mypackage.myobjects.Address [SELECT id FROM com.mypackage.myobjects.Address adr WHERE adr.country_id in (:country)]

SQL データベースを使用して同様のクエリを実行すると、すべて問題ありませんが、これは壊れます。フォルダーに突然出力パッケージがすべてあるのはなぜですか? データベースではなく、オブジェクトに対してクエリが実行されているようです。私は何を間違っていますか?

前もって感謝します

4

1 に答える 1