10

だから私はこの次のコードを持っています:

Query query = session.createQuery("from Weather");
        List<WeatherModel> list = query.list();
        WeatherModel w = (WeatherModel) list.get(0);

テーブル Weather からすべての項目を取得したくありませんが、次のエラーが発生し続けます:(23 行目でクエリを作成します)

java.lang.NullPointerException
    at action.WeatherAction.validate(WeatherAction.java:23)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doBeforeInvocation(ValidationInterceptor.java:251)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)............

どうしたの?

4

4 に答える 4

11
Query query = session.createQuery("from Weather"); //You will get Weayher object
List<WeatherModel> list = query.list(); //You are accessing  as list<WeatherModel>

両者は別の存在です

Query query = session.createQuery("from Weather"); 

 List<Weather> list = query.list(); 

Weather w = (Weather) list.get(0);
于 2013-05-04T09:55:51.857 に答える
6

複雑なプロジェクトでは、文字列リテラルにエンティティ名をハードコーディングしたくありません。

Session session = sessionFactory.getCurrentSession();

CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<WeatherModel> criteriaQuery = 
    criteriaBuilder.createQuery(WeatherModel.class);

// Your underlying table name might change in the future.
// Let hibernate take care of the names.
Root<WeatherModel> root = criteriaQuery.from(WeatherModel.class);
criteriaQuery.select(root);

Query<WeatherModel> query = session.createQuery(criteriaQuery);
List<WeatherModel> weatherModelList = query.getResultList();
于 2016-11-23T02:38:56.373 に答える
0

Weather は、WeatherModel とは異なるエンティティになります。リストには Weather オブジェクトがあり、それが WeatherModel のサブタイプである場合にのみキャストできます

于 2013-05-04T09:54:04.950 に答える