从表休眠中选择全部

时间:2013-05-04 09:06:38

标签: hibernate

所以我有以下代码:

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

我不想从表天气中获取所有项目,但我不断收到以下错误:(第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 个答案:

答案 0 :(得分:10)

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);

答案 1 :(得分:5)

在复杂的项目中,我不想在字符串文字中对实体名称进行硬编码:

Session session = sessionFactory.getCurrentSession();
CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder();
CriteriaQuery<WeatherModel> criteriaQuery = criteriaBuilder.createQuery(WeatherModel.class);
Root<WeatherModel> root = criteriaQuery.from(WeatherModel.class);
criteriaQuery.select(root);
Query<WeatherModel> query = session.createQuery(criteriaQuery);
List<WeatherModel> weatherModelList = query.getResultList();

答案 2 :(得分:1)

我遇到了类似的问题,似乎已经通过提供您要查询的对象的完整路径来解决。所以,当我看起来像这样:session.createQuery(&#34;来自com.mystuff.something.or.other.MyEntity&#34;)它起作用了。

答案 3 :(得分:0)

天气将是与WeatherModel不同的实体。 您的列表将具有Weather对象,只有在它是WeatherModel的子类型

时才可以进行转换