`

hibernate hql return object or list 指定类型

    博客分类:
  • java
阅读更多
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();
	}

 

 

分享到:
评论

相关推荐

    JPA--HQL查询(手动写原生查询sql,复杂查询必备).pdf

    在查询结果处理方面,需要根据返回的结果来定义接收数据类型,例如,返回的结果是一个列表,可以使用 List&lt;Object[]&gt; 来接收,然后遍历列表,处理每个元素。 以下是 HQL 查询的示例代码: 首先,添加 ...

    hibernate通用查询

    public List&lt;T&gt; findByPage(int pageNum, int pageSize, String hql, Object... params) { Session session = getSession(); try { Query query = session.createQuery(hql); query.setFirstResult((pageNum - ...

    HQL语句大全

    HQL(Hibernate Query Language)是Hibernate框架中用于查询数据库的一种面向对象的查询语言。它允许开发人员以面向对象的方式编写查询,而不是直接使用SQL。HQL支持各种查询操作,包括插入、删除、更新以及复杂的...

    hibernate执行原生sql语句

    在上面的代码中,我们使用 `Session.createSQLQuery()` 方法创建了一个 `SQLQuery` 对象,然后使用 `addEntity()` 方法指定了查询结果的实体类型,最后使用 `list()` 方法执行查询并获取结果。 使用 ...

    hql的增删改查

    ### HQL(Hibernate Query Language)增删改查详解 #### 一、概述 HQL(Hibernate Query Language)是Hibernate框架提供的查询语言,它基于对象模型而不是传统的SQL语法,使得开发人员能够更加自然地操作数据库中...

    Spring/泛型Hibernate的实现

    public List&lt;T&gt; find(String hql, Object... values) { return (List) this.hibernateTemplate.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws ...

    Hibernate查询解决方案

    Hibernate 的核心功能之一是提供了一套强大的查询接口和方法,包括基于对象的查询、SQL 查询和 HQL (Hibernate Query Language) 查询等。本文将详细介绍 Hibernate 提供的几种查询方式及其应用场景。 #### 二、重要...

    Hibernate 参数查询通用方法

    public List&lt;T&gt; queryByParams(String hql, Map, Object&gt; params) { Session session = sessionFactory.openSession(); Transaction tx = null; try { tx = session.beginTransaction(); Query query = ...

    hibernate数据库通用SQL代码

    查询数据的方法有两种实现,一种是基于HQL(Hibernate Query Language),另一种是基于原生SQL。 - 基于HQL的通用查询: HQL是Hibernate提供的面向对象的查询语言,可以方便地操作对象和属性。`select`方法接收一个...

    hibernate操作

    `get()`用于根据主键查询,`createQuery()`用于构建HQL(Hibernate Query Language)查询,`save()`用于插入新记录,而`delete()`则用于删除记录。注意在执行事务性操作时,需要使用`Transaction`来确保数据的一致性...

    hibernate查询

    return query.list(); ``` HQL还支持各种比较操作符(&gt;,&lt;,=,&gt;=,,,is null),逻辑运算符(and,or,not),以及in和between等条件。 **Criteria查询**是另一种在Hibernate中进行查询的方法,它提供了API接口...

    s2hibernate

    - **查询工具**: 提供方便的查询API,支持HQL(Hibernate Query Language)和Criteria查询。 **2. S2Hibernate与Seasar框架的整合** Seasar框架的组件化设计使得S2Hibernate能与其他组件无缝集成。例如: - **S2...

    hibernate学习笔记

    在Struts框架中,`ActionForward`用于指定请求的转发路径,例如`return new ActionForward("/index.jsp")`会将请求转发到`index.jsp`页面。然而,需要注意的是,ActionForm中的数据在转发后不再有效,因此需要将...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    List&lt;Object[]&gt; results = sqlQuery.addScalar("id", Hibernate.LONG).addScalar("name", Hibernate.STRING).list(); ``` 这将返回一个Object数组的列表,每个数组对应一条查询结果,数组中的元素按照SQL查询中选择...

    Hibernate SQLQuery执行原生SQL.docx

    默认情况下,SQLQuery的查询结果会映射为Object数组或List&lt;Object[]&gt;。然而,有时我们可能希望将结果转换为自定义的类型,比如Map。这就需要用到ResultTransformer接口。 首先,我们需要创建一个实现...

    struts+hibernate查询所有记录

    2. **HQL(Hibernate Query Language)**:这是Hibernate提供的一种查询语言,类似于SQL,但更加面向对象。通过HQL,我们可以方便地查询数据库中的记录。 3. **Struts标签库**:Struts提供了一系列自定义的JSP标签...

    Hibernate中的DAO模式

    在Java领域,尤其是在企业级应用开发中,DAO模式常与ORM(Object-Relational Mapping)框架如Hibernate结合使用。 **Hibernate** 是一个流行的ORM框架,它允许开发者用面向对象的方式操作数据库,而无需直接编写SQL...

    常用的HQL语句!!!!

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的数据的语言,它是SQL的一个面向对象的版本。HQL允许开发者以对象的方式编写查询,而不是直接操作数据库表格。以下是一些常见的HQL...

    六种方式实现hibernate查询

    HQL(Hibernate Query Language)是Hibernate自己的查询语言,具有跨数据库的优点。它的语法类似SQL,但更面向对象。示例代码: ```java static void query(String name){ Session s=null; try{ s=HibernateUtil....

Global site tag (gtag.js) - Google Analytics