Общий объект, возвращаемый вместо объекта класса в запросе гибернации - PullRequest
1 голос
/ 06 мая 2011

Я выполняю запрос гибернации, который возвращает объект вместо правильного объекта сущности.Заявление выглядит следующим образом:

public List getPriorBids(String rfpCD, String carrierCode) {
    String sqlString =  " SELECT inland_cd, " +
                                "rfp_cd, " +
                                "carrier_cd, " +
                                "port_cd, " +
                                "max(iteration_nb) as iteration_nb " +
                        " FROM care.inland_bid " +
                        " WHERE rfp_cd = :rfpCode " +
                        "   AND carrier_cd = :carrierCode " +
                        " GROUP BY inland_cd, rfp_cd, carrier_cd, port_cd " +
                        " ORDER BY inland_cd, carrier_cd"; 
    SQLQuery sqlQuery = session.createSQLQuery(sqlString);
    sqlQuery.setString("carrierCode",carrierCode);
    sqlQuery.setString("rfpCode", rfpCD);
    sqlQuery.addEntity(Bid.class);
    List bids = sqlQuery.list();
    return bids;
   }

Я явно пытаюсь сохранить его как объект Bid.У меня также есть другой объект, который я должен сохранить, но я получаю ошибку, что имя столбца не может быть найдено, несмотря на двойную и тройную проверку имен столбцов, чтобы убедиться, что они совпадают.

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Query.list() возвращает необработанный List объект , а не универсальный List.

Вы должны просто иметь возможность привести его к List<Bid> и игнорировать небезопасныйпредупреждение о сотворении.

Я думаю, вы путаете метод, который возвращает необработанный List с фактическим типом времени выполнения элементов List, равным Object.То, что подпись List.get(i) во время компиляции возвращает Object, не означает, что фактический тип возвращаемого элемента Object во время выполнения.

1 голос
/ 06 мая 2011

Если вы используете JPA 2, вы можете создать TypedQuery, который поддерживает генерики

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...