java.lang.ClassCastException: [Ljava.lang.Object; incompatible with com.shkco.adsr3.cbm.vo.ICustomerAccount
看到这错误都知道是数据类型转换不匹配,Object 与ICustomerAccount.
DAO 方法原始如下:
public List<ICustomerAccount> getListOfCustomerAccount(ISessionContext sessionContext, IClientCentricCustomer clientCentricCustomer) { ISessionWrapper session = getCurrentSession(); String sqlStr = "from " + CustomerAccount.class.getName() + " as cust join cust.companyGroup as cg where cg.compGrpId = " + ":companyGroupId " + " and cust.ccdRef= :ccdRef "; Query query = session.createQuery(sqlStr); query.setParameter("companyGroupId", getCompGrpId(sessionContext)); query.setParameter("ccdRef", clientCentricCustomer); return query.list(); }
没有注意看代码,因为是直接写的from .....没有写select 对象,所以返回的就是Object.
修改如下即可:
加上Select cust,即ICustomerAccount 对象就ok啦。
public List<ICustomerAccount> getListOfCustomerAccount(ISessionContext sessionContext, IClientCentricCustomer clientCentricCustomer) { ISessionWrapper session = getCurrentSession(); String sqlStr = "select cust from " + CustomerAccount.class.getName() + " as cust join cust.companyGroup as cg where cg.compGrpId = " + ":companyGroupId " + " and cust.ccdRef= :ccdRef "; Query query = session.createQuery(sqlStr); query.setParameter("companyGroupId", getCompGrpId(sessionContext)); query.setParameter("ccdRef", clientCentricCustomer); return query.list(); }
相关推荐
在查询结果处理方面,需要根据返回的结果来定义接收数据类型,例如,返回的结果是一个列表,可以使用 List<Object[]> 来接收,然后遍历列表,处理每个元素。 以下是 HQL 查询的示例代码: 首先,添加 ...
public List<T> findByPage(int pageNum, int pageSize, String hql, Object... params) { Session session = getSession(); try { Query query = session.createQuery(hql); query.setFirstResult((pageNum - ...
HQL(Hibernate Query Language)是Hibernate框架中用于查询数据库的一种面向对象的查询语言。它允许开发人员以面向对象的方式编写查询,而不是直接使用SQL。HQL支持各种查询操作,包括插入、删除、更新以及复杂的...
在上面的代码中,我们使用 `Session.createSQLQuery()` 方法创建了一个 `SQLQuery` 对象,然后使用 `addEntity()` 方法指定了查询结果的实体类型,最后使用 `list()` 方法执行查询并获取结果。 使用 ...
### HQL(Hibernate Query Language)增删改查详解 #### 一、概述 HQL(Hibernate Query Language)是Hibernate框架提供的查询语言,它基于对象模型而不是传统的SQL语法,使得开发人员能够更加自然地操作数据库中...
public List<T> find(String hql, Object... values) { return (List) this.hibernateTemplate.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws ...
Hibernate 的核心功能之一是提供了一套强大的查询接口和方法,包括基于对象的查询、SQL 查询和 HQL (Hibernate Query Language) 查询等。本文将详细介绍 Hibernate 提供的几种查询方式及其应用场景。 #### 二、重要...
public List<T> queryByParams(String hql, Map, Object> params) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); Query query = ...
查询数据的方法有两种实现,一种是基于HQL(Hibernate Query Language),另一种是基于原生SQL。 - 基于HQL的通用查询: HQL是Hibernate提供的面向对象的查询语言,可以方便地操作对象和属性。`select`方法接收一个...
`get()`用于根据主键查询,`createQuery()`用于构建HQL(Hibernate Query Language)查询,`save()`用于插入新记录,而`delete()`则用于删除记录。注意在执行事务性操作时,需要使用`Transaction`来确保数据的一致性...
return query.list(); ``` HQL还支持各种比较操作符(>,<,=,>=,,,is null),逻辑运算符(and,or,not),以及in和between等条件。 **Criteria查询**是另一种在Hibernate中进行查询的方法,它提供了API接口...
- **查询工具**: 提供方便的查询API,支持HQL(Hibernate Query Language)和Criteria查询。 **2. S2Hibernate与Seasar框架的整合** Seasar框架的组件化设计使得S2Hibernate能与其他组件无缝集成。例如: - **S2...
在Struts框架中,`ActionForward`用于指定请求的转发路径,例如`return new ActionForward("/index.jsp")`会将请求转发到`index.jsp`页面。然而,需要注意的是,ActionForm中的数据在转发后不再有效,因此需要将...
List<Object[]> results = sqlQuery.addScalar("id", Hibernate.LONG).addScalar("name", Hibernate.STRING).list(); ``` 这将返回一个Object数组的列表,每个数组对应一条查询结果,数组中的元素按照SQL查询中选择...
默认情况下,SQLQuery的查询结果会映射为Object数组或List<Object[]>。然而,有时我们可能希望将结果转换为自定义的类型,比如Map。这就需要用到ResultTransformer接口。 首先,我们需要创建一个实现...
2. **HQL(Hibernate Query Language)**:这是Hibernate提供的一种查询语言,类似于SQL,但更加面向对象。通过HQL,我们可以方便地查询数据库中的记录。 3. **Struts标签库**:Struts提供了一系列自定义的JSP标签...
在Java领域,尤其是在企业级应用开发中,DAO模式常与ORM(Object-Relational Mapping)框架如Hibernate结合使用。 **Hibernate** 是一个流行的ORM框架,它允许开发者用面向对象的方式操作数据库,而无需直接编写SQL...
HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的数据的语言,它是SQL的一个面向对象的版本。HQL允许开发者以对象的方式编写查询,而不是直接操作数据库表格。以下是一些常见的HQL...
HQL(Hibernate Query Language)是Hibernate自己的查询语言,具有跨数据库的优点。它的语法类似SQL,但更面向对象。示例代码: ```java static void query(String name){ Session s=null; try{ s=HibernateUtil....