`

关于Example查询的问题!

阅读更多
主题:关于Example查询的问题,个人认为会出小小问题的地方,自己总结一下吧。
1.在 POJO 里属性为原始类型的查询情况,举例如下:
NewUser.java 中定义 age 为 int (其他属性均为封装类型)
......
private int age;
.....
public int getAge() {
		return this.age;
	}

	public void setAge(int age) {
		this.age = age;
	}
......

映射文件和其他配置均准确。其中数据库中的记录如下表:
[img]C:\Documents and Settings\chenhao\桌面\aaa.bmp[/img]
现在用通过条件查询查查 name=tom 记录。代码如下:
......
NewUser user = new NewUser();
		user.setName("tom");
		List list = session.createCriteria(NewUser.class).add(Example.create(user)).list();
......

查询结果:
引用
Hibernate: select this.id as id0_, this.name as name0_, this.age as age0_, this.image as image0_, this.resume as resume0_ from new_user this where (this.name=? and this.age=?)
hava no record

可以看到这里并没有查询到想查的记录呕。请仔细看看 查询语句,会发现 and this.age=?这个条件。为什么呢?
引用
其实 hibernate 在用Example的查询的时候是封装了一个样例对象,让后执行查询,这里由于age 为int类型,所以在封装时候age已经有个默认值0 ,这使得你的查询其实是在查询 name=tom ,age = 0的 记录,当然不能查到了。

2.修改NewUser.java 里age 为Integer.并修改getter 和 setter 方法,做同样的查询:
结果如下:
引用
Hibernate: select this.id as id0_, this.name as name0_, this.age as age0_, this.image as image0_, this.resume as resume0_ from new_user this where (this.name=?)
********************** result ****************
user id :1 user name : tom user age : 26
********************** end *******************

再看看打印出的查询语句,已经没有age的条件了。这才是想要的结果。

不知道这里说清楚这个问题了没有,请大家指点!

3.其实说这么多,就想说一个意思。就是在 pojo 里面最好用封装类型而不要用原始类型。
分享到:
评论

相关推荐

    java example

    java example 封面。。。。。

    使用 Example 类 实现MySQL一个搜索框对多个字段的模糊查询

    使用的 Example 类是由 mybatis-generator 所生成的 以下是具体内容: 这里用的 or 的方式 SpaItemExample.Criteria criteria = example.createCriteria(); criteria.andCodeLike('%'+queryString+'%'); example....

    ibatis Example使用

    ibatis代码生成后如何使用Example自动查询功能, 我是找个好长时间才分析出来,分享技术,测试使用,希望对你有所帮助

    springboot-elasticsearch-example

    springboot-elasticsearch-example springboot 与elasticsearch整合

    Example055-参数查询.rar vb源码

    Example055-参数查询.rar vb源码

    MybatisGenerator代码生成器(可查询指定字段)

    MybatisGenerator本身是没有提供查询指定字段的,例如数据库有5个字段,我想查询其中3个字段的全部记录,这是做不到的。经过研究MybatisGenerator实现原理,在保证原有功能的基础上,实现了生成查询指定字段的相关...

    example of postgresql with C language

    关于postgresql的C语言连接查询以及数据操作的例子,学习postgresql很好的开始。

    hibernate-search-example-master例子

    hibernate search的例子,使用的spring.version:3.2.1.RELEASE hibernate.version:4.2.0.Final hibernate-search.version:4.2.0.Final

    sqlalchemy-example

    sqlalchemy-example

    SpringMVC+Mybatis实现的SqlServer整合逆向工程Example类分页带条件数据查询

    SpringMVC+Mybatis实现的SqlServer整合逆向工程Example类分页带条件数据查询;(中间有MySQL整合代码网上关于MySQL的资料太多只共参考,这里以SQLserver为主) 全网第一整合版,逆向工程sqlserver分页;后续我还会...

    query-example:Camunda示例查询

    query-example:Camunda示例查询

    prometheus-example-queries, 简单的地方让人们提供他们发现的查询示例.zip

    prometheus-example-queries, 简单的地方让人们提供他们发现的查询示例 命令行目普罗米修斯非常棒,但是人类的大脑在PromQL中无法工作。 这个存储库的意图是为人们提供他们有用的查询示例的简单地方。 我们鼓励一切...

    example.rar

    springboot2.1.7集成Mybatis插件—通用Mapper 本项目主要以集成tk.mybatis.mapper插件为主。具体用到了以下技术: 1、SpringBoot集成thymeleaf模板 ...4、SpringBoot集成通用Mapper插件,从数据库查询数据返回到页面

    Example021—30

    系统开发实例精粹>的源码Example021—30-文件传递系统、数据库图表系统、数据库系统-BDE篇、数据库系统-ADO篇、数据库系统-InterBase篇、数据库系统-DbExpress篇、数据库备份系统、数据库恢复系统、数据导出系统...

    Python-MySQLdb-example:Python-MySQLdb-example

    Python-MySQLdb-examplePython-MySQLdb-example本文主要介绍通过MySQLdb实现Python对MySQL数据库的访问和操作。备注:execute 把一条查询语句发送给mysql服务器,这里有两种情况:CREATE、INSERT、DELETE、UPDATE、...

    servlet-view-example:提交 Hive 查询的 Ambari 视图示例

    一个带有简单 UI 和支持 Java Servlet 的 Ambari 视图示例,用于执行 Hive 查询和查看结果。 ![Hive 查询视图](/sshots/hive query.png?raw=true) ![Hive 结果视图](/sshots/hive results.png?raw=true) 要安装...

    redis:redis相关操作example

    Redis提供键值对的形式对数据进行存储。支持五种数据类型:String(字符串),List(链表),Hash(散列),Set(无序集合),ZSet(有序集合)。 结构类型 结构存储的值 结构的读写能力 String ...

    Mybatis多线程下如何使用Example详解

    主要给大家介绍了关于Mybatis多线程下如何使用Example的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

    graphql-example:一个示例项目,展示GraphQL的用法

    graphql-example 一个示例项目,展示GraphQL的用法。有用的npm命令命令描述clean 清除打包的前端所在的dist文件夹。 backend:start 启动快速服务器。 可以将端口指定为参数,否则使用1234。 可以通过<domain>:<PORT>...

    VB API 范例 150例 光盘 源码

    ├─Example085-ComboBox控件的自动查询技术 ├─Example086-在ListBox控件间移动列表项 ├─Example087-简单的文件浏览器 ├─Example088-使用ListView控件增强文件浏览器 ├─Example089-播放Flash动画 ├─...

Global site tag (gtag.js) - Google Analytics