Hibernate框架中Criteria的示例查询问题
2013-09-09 23:57
513 查看
今天在用Criteria的示例查询时,用了主键查询,怎么弄也是会出现全部的结果,具体代码如下:
public List<FilmInfo> queryFilmInfoByExample(FilmInfo filmInfo) { // TODO Auto-generated method stub List<FilmInfo> filmList = new ArrayList<FilmInfo>(); Session session = null; try{ session = HibernateSessionFactory.getSession(); Criteria criteria = session.createCriteria(FilmInfo.class); criteria.add(Example.create(filmInfo).excludeZeroes()); //示例查询 filmList = criteria.list(); }catch(HibernateException e){ e.printStackTrace(); } return filmList; }
持久化类是:
public class FilmInfo { private int filmId; private String filmName; private String actor; private String director; private int ticketPrice; private FilmType filmType; public FilmType getFilmType() { return filmType; } public void setFilmType(FilmType filmType) { this.filmType = filmType; } public int getFilmId() { return filmId; } public void setFilmId(int filmId) { this.filmId = filmId; } public String getFilmName() { return filmName; } public void setFilmName(String filmName) { this.filmName = filmName; } public String getActor() { return actor; } public void setActor(String actor) { this.actor = actor; } public String getDirector() { return director; } public void setDirector(String director) { this.director = director; } public int getTicketPrice() { return ticketPrice; } public void setTicketPrice(int ticketPrice) { this.ticketPrice = ticketPrice; } }测试代码:
public static void main(String[] args) { FilmInfo f = new FilmInfo(); f.setFilmId(11); FilmDaoImpl fd = new FilmDaoImpl(); List<FilmInfo> list = fd.queryFilmInfoByExample(f); for (FilmInfo filmInfo2 : list) { System.out.println(filmInfo2.getFilmId()+"\t"+filmInfo2.getFilmName()+"\t"+filmInfo2.getActor()); } }
在控制台打印出的SQl语句是:
Hibernate: select this_.FILMID as FILMID0_0_, this_.FILMNAME as FILMNAME0_0_, this_.ACTOR as ACTOR0_0_, this_.DIRECTOR as DIRECTOR0_0_, this_.ticketPrice as ticketPr5_0_0_, this_.TYPE_ID as TYPE6_0_0_ from java11.FILMINFO this_ where (1=1)
结果为:
42 兵临城下
让-雅克·阿诺
11 变形金刚3:黑月降临
迈克尔·贝
12 星际迷航
William Shatner
21 小时代
郭敬明
22 被偷走的那五年
黄真真
31 九品芝麻官之白面包青天王晶
32 举起手来(之二)追击阿多丸冯小宁
41 斯巴达300勇士
扎克·施耐德
51 先知 亚历克斯·普罗亚斯
52 大侦探福尔摩斯2:诡影游戏盖·里奇
61 海洋 雅克·贝汉;雅克·克鲁奥德
62 非洲2013
戴维·爱丁保罗夫
实在是弄不明白为什么最后的查询条件编程了where(1=1),
解决办法:
这个例子告诉我Creteria.
createCriteria(FilmInfo.class);的工作机制,不支持主键查询,否则结果为全部结果,
示例查询适合动态查询,如果用主键查询属于静态查询,得用HQL
相关文章推荐
- Hibernate Criteria 多层次查询关联问题
- Hibernate框架(15) —— Hibernate中的批量查询概述之Criteria查询
- 关于Hibernate的DetachedCriteria查询的addOrder问题的解决办法
- Hibernate中criteria一对多关联查询时distinct的分页和数量问题
- 关于Hibernate中fatch=eager的bag集合(一个java List)使用Criteria查询出现重复记录的问题
- Hibernate框架(六)Criteria和命名查询
- 请教一下hibernate中的criteria分组查询语句报类转换错误,出了什么问题?
- Hibernate Criteria 多层次查询关联问题
- Java的Hibernate框架中Criteria查询使用的实例讲解
- hibernate中Criteria的DISTINCT查询问题的解决方法
- 求助Hibernate问题(我使用Criteria 查询数据库表时,当客户端调用到第3次就出现问题 )
- Hibernate Criteria 多层次查询关联问题
- Hibernate框架第二天(一级缓存、Query和Criteria查询接口)
- hibernate关于criteria多表查询问题
- Hibernate Criteria 多层次查询关联问题 HibernateJava
- hibernate框架学习笔记11:Criteria查询详解
- 【SSH三大框架】Hibernate基础第四篇:Hibernate的两种查询方式:hql和Criteria
- hibernate一对多关联查询去重 criteria设置 解决分页条数不正确的问题
- Hibernate框架之HQL查询与Criteria 查询的区别
- 框架学习之Hibernate 第五节 HQL和Criteria查询入门