`

AliasToBeanResultTransformer 。问题:Could not find setter for 0 on class MyClass

 
阅读更多

As you are using AliasToBeanResultTransformer, you have to declare proper alias names in your query, as its name says that it will transform the results into your resultClass using thealias names.

The transformTuple method of AliasToBeanResultTransformer class uses the alias names to find the setter methods of your resultClass (StudentDto):

下面这个就是AliasToBeanResultTransformer类的transformTuple方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public Object transformTuple(Object[] tuple, String[] aliases) {
        Object result;
        try {
            if ( setters == null ) {
                setters = new Setter[aliases.length];
                for int i = 0; i < aliases.length; i++ ) {
                    String alias = aliases[i];
                    if ( alias != null ) {
                        setters[i] = propertyAccessor.getSetter( resultClass, alias );
                    }
                }
            }
            result = resultClass.newInstance();
            for int i = 0; i < aliases.length; i++ ) {
                if ( setters[i] != null ) {
                    setters[i].set( result, tuple[i], null );
                }
            }
        }
        catch ( InstantiationException e ) {
            throw new HibernateException( "Could not instantiate resultclass: " + resultClass.getName() );
        }
        catch ( IllegalAccessException e ) {
            throw new HibernateException( "Could not instantiate resultclass: " + resultClass.getName() );
        }
        return result;
    }

 

In order to make AliasToBeanResultTransformer work properly you need to use proper alias names in yourquery. If the property name in your StudentDto class is name, you should useselect student.name as name; using select student.name as n will again throw exception. The alias names that you are using in the query should be same as the property names in your DTO class.

0
0
分享到:
评论

相关推荐

    Hibernate映射导致的几个异常

    标题与描述概述的知识点主要集中在Hibernate映射过程中可能遇到的各种异常情况,这涉及到数据库与对象模型之间的映射问题,以及Hibernate框架在处理这些映射时可能产生的错误。下面将对这些异常进行详细的解释和分析...

    struts2中警告消息问题的解决方法

    在使用Struts2开发过程中,有时会遇到“警告: Could not find property [xxx]”这样的错误消息,这通常是由于配置问题或者依赖库不匹配导致的。本文将深入探讨这些警告的成因及解决方法。 1. **问题成因**: - **...

    vue-setter:通过getter和setter进行数据绑定的插件

    VueSetter 通过getter和setter进行数据绑定的插件安装npm install --save vue-setter用法输入绑定&lt;input type="text" v-setter.name="user" :value="user.getName()"&gt;将在输入时自动调用user.setName 。捆绑器...

    property-asserter:Java 属性 gettersetter 自动单元测试

    财产断言者这是一个 Java JUnit 测试实用程序,可以轻松测试属性的getter/setter方法。 该实现最初由 Scott Leberknight 编写,并在讨论过 我自己 Josef Betancourt 在时再次讨论了这个问题最近原始源代码存档不可用...

    setter-getterify:为对象生成 setter 和 getter

    setter-getterify 为对象生成 setter 和 getter 句法 setterGetterify ( object , properties , callbacks ) ; 例子 var setterGetterify = require ( 'setter-getterify' ) ; var thing = { some : 'properties'...

    gettersAndSetters:使用Getter和Setter的简单方法-Java

    在Java编程语言中,getter和setter方法是面向对象设计原则的一部分,主要用于封装对象的属性,以保护数据并控制对它们的访问。这些方法是类的成员函数,分别用于获取(get)和设置(set)对象的私有变量值。本项目...

    setter-on-constructor-prototype.rar_The Next

    在JavaScript编程中,"setter-on-constructor-prototype.rar_The Next"这个主题涉及到对象属性的访问和修改,尤其是关于构造函数原型链上的setter方法。在描述中提到的"Get the name of the next property of Result...

    hibernate常见问题及处理.doc

    3. `net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class …` 这个异常表示Hibernate无法找到Java类中与XML映射文件中指定的属性相对应的getter或setter方法。确保...

    memcache-simplified:内存缓存 gettersetter

    一个简单的 memcached 实现,支持 getter/setter 先决条件 安装 gcc! 在 MacOS 下开发并经过良好测试。 它在 Windows 上不起作用。 尚未在其他 linux 系列系统上测试。 运行服务器 确保您有 11211 端口可用于应用...

    mybatis-generator 字段 getter setter 中文注释

    解决这个问题的方法是预先创建好目标目录,或者在执行MBG时指定一个已经存在的目录。 MBG的配置文件是XML格式的,其中可以设置多种参数,包括生成的代码风格、注释内容以及目标文件路径等。对于中文注释的支持,...

    ES6 类(Class)的继承(extends)和自定义存(setter)取值(getter)详解

    ES6 类(Class)的继承(extends)和自定义存(setter)取值(getter)详解,博客地址: http://blog.csdn.net/pcaxb/article/details/53784309

    GIDOT TYPESETTER 3.0.8

    软件名称:排版助手 GIDOT TYPESETTER 当前版本:3.0.8 (2009-12-08 02:05:07) 作者:GIDOT 邮箱:GIDOT@VIP.QQ.COM 网站:WWW.GIDOT.NET/TYPESETTER 官方QQ群:56288291、13733967 新增功能: ·关闭时保存编辑现场...

    Gidot_Typesetter_3.0.6.rar

    软件名称:排版助手 GIDOT TYPESETTER 当前版本:3.0.6 作者:GIDOT 邮箱:GIDOT@VIP.QQ.COM 网站:WWW.GIDOT.CN/TYPESETTER 新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具...

    Laravel开发-setter

    在这个例子中,setter方法将输入的邮箱地址自动转化为小写并去除两侧的空白字符,这样可以确保所有邮箱地址的一致性,同时避免了因大小写或多余空格导致的问题。 当我们通过Eloquent模型创建或更新用户时,Laravel...

    ES6 类(Class)基本用法和静态属性+方法详解

    在JavaScript的世界里,ES6(ECMAScript 2015)引入了一种新的语法特性——类(Class),这是对面向对象编程模型的一种语法糖,使得JavaScript的代码更加易读,更符合传统的类式编程习惯。本文将深入探讨ES6中的类的...

    java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class

    提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具类. 提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,java * 反射工具类. 提供调用getter/...

    Typesetter CMS v5.1

    9. **社区支持**:开源项目通常拥有活跃的开发者社区,用户可以在其中找到帮助、教程和解答问题,对于Typesetter CMS来说,这样的社区支持也是其价值的一部分。 综上所述,Typesetter CMS v5.1是一个集易用性、功能...

    spring setter 和构造 注入 例子 spring 4.2.0

    DI主要有两种实现方式:setter注入和构造器注入。 首先,我们来理解setter注入。setter注入是通过Spring容器调用对象的setter方法来设置其依赖的对象。这种方式比较灵活,因为可以在运行时改变对象的依赖。例如,...

    软件名称:排版助手 GIDOT TYPESETTER

    新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具菜单整合到鼠标右键菜单中 ·优化程序设置处理代码 ·段首缩进空格增加全角与半角选项 ·排版工具放在 排版需求 菜单下 (此项...

    Gidot_Typesetter. 一个文件排版工具

    总结起来,Gidot Typesetter是一个全面的文件排版应用,它将复杂的排版工作简化,让用户专注于内容创作,而不用过多操心格式问题。无论是专业人士还是普通用户,都能从中受益,享受到高品质的文本排版服务。通过深入...

Global site tag (gtag.js) - Google Analytics