Hibernate 从“休眠”表中选择“全部”
所以我有以下代码:Hibernate 从“休眠”表中选择“全部”,hibernate,Hibernate,所以我有以下代码: Query query = session.createQuery("from Weather"); List<WeatherModel> list = query.list(); WeatherModel w = (WeatherModel) list.get(0); 有什么问题吗?天气将是一个与WeatherModel不同的实体。 您的列表将包含天气对象,仅当它是WeatherModel的子类型时,才能对其进行强制转换//你会
Query query = session.createQuery("from Weather");
List<WeatherModel> list = query.list();
WeatherModel w = (WeatherModel) list.get(0);
有什么问题吗?天气将是一个与WeatherModel不同的实体。 您的列表将包含天气对象,仅当它是WeatherModel的子类型时,才能对其进行强制转换//你会得到她想要的东西
Query query = session.createQuery("from Weather"); //You will get Weayher object
List<WeatherModel> list = query.list(); //You are accessing as list<WeatherModel>
List=query.List()//您正在作为列表访问
它们都是不同的实体
Query query = session.createQuery("from Weather");
List<Weather> list = query.list();
Weather w = (Weather) list.get(0);
Query Query=session.createQuery(“来自天气”);
List=query.List();
天气w=(天气)列表。获取(0);
我刚刚遇到了一个类似的问题,通过提供您试图查询的对象的完整路径,似乎已经解决了这个问题。因此,当我将其设置为session.createQuery(“from com.mystuff.something.or.other.MyEntity”)时,它起到了作用。在复杂的项目中,我不希望用字符串文字硬编码实体名称:
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();
Session Session=sessionFactory.getCurrentSession();
CriteriaBuilder CriteriaBuilder=session.getCriteriaBuilder();
CriteriaQuery-CriteriaQuery=criteriaBuilder.createQuery(WeatherModel.class);
Root=criteriaQuery.from(WeatherModel.class);
criteriaQuery.select(root);
Query Query=session.createQuery(criteriaQuery);
List weatherModelList=query.getResultList();
修复了错误,新错误:java.lang.ClassCastException:[Ljava.lang.Object;无法在action.WeatherAction.validate(WeatherAction.java:29)处转换为model.WeatherModel。新错误:HTTP状态500-天气未映射[来自天气]这个问题很难理解,请1.在代码中输入行号,2.更新问题而不是添加注释…(或删除它并创建一个新的)类型安全答案可能重复:如果WeatherModel表非常大,如何处理?有没有办法每次选择1000条记录?@coderz我可以推荐使用分页列表?createQuery(“来自天气”).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
我已编辑了您的答案;您可以将代码缩进4个空格,将其放入代码标记中。您的答案在低质量队列中。您可以通过解释此代码如何解决问题来改进您的答案。
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();