关于hibernate条件查询问题。

查,一张表
条件1:按时间降序
条件2:查询某一段的数据,如A,B,C,D,E (要求查C到D 这段数据)
条件3:查询的过程中,还会有新数据不断的插入

之前我想过直接上分页,可是分页 的话出现条件3的情况就不符合需求。
因为,假如现在有A,B,C,D,E 四条数据已经按时间降序了
现在第一页,每页显示2条吧,第一页出现就是A,B;第二页出现就是C,D
这时候如果突然插入一条新数据 “N” ,那这时候就出问题了,因为按照
时间降序,数据为:N,A,B,C,D,E。这时候 如果我在还在第二页的时候,数据突然被插入N,
那第三页的数据则会变成 D,E
这样第二页有 D, 第三页也有D
请问怎样解决这个问题啊。
hibernate有没有什么方法,根据指定id为开始,向后取N条数据这样的啊?
求大神指导

2个回答

你可以把这一个小时内插的数据当做条件排除 仅供参考

我觉得没有什么不对啊 数据为N,A,B,C,D,E 查出第三页 d,e不是很正常吗,难道插入的数据还能查不出来吗?不知道你为什么要不查出数据,这样的话,我建议你每次select的时候先复制表然后查这张复制的表,中途插入的数据就查不出来了

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate hql查询问题
遇到个hibernate hql查询的问题,求高手解答 实体类A包含实体类T属性,实体类T有两个子类T1,T2,代码如下: A{ T t; } T{ } T1 extends T{ } T2 extends T{ } 现在我要查询A,条件是T为T2的类型,HQL语句应该怎么写?
关于hibernate关联查询的条件问题
我现在有两个类 [code="java"] public class UserInfo { private int userId; private String name; private String password; private IdCard idCard; private Set messages; [/code] [code="java"] public class Message { private int msgId; private String ttl; private String desc; private Date date; private UserInfo user; private int version; [/code] 我想在查询的时候通过UserInfo获取Message,然而要通过Date进行限制,也就是说我想通过user.getMessage()得到message,这些message要符合一些条件比如说日期都是2009/03/30日之前的; 之前无论我怎么做通过user.getMessage()得到的都是数据库里面的所有message信息,请教各位如何解决这个问题,谢谢了
hibernate多条件查询问题
String hql = " from Record as r where r.online_time between ? and ? and r.user_name like:user_name " + "and r.certificate_code like:certificate_code "; Query query = getSession().createQuery(hql); query.setString("user_name","%"+username+"%"); query.setString("certificate_code","%"+certificateCode+"%"); query.setDate(0,onstartDate); query.setDate(1,onendDate) ; return query.list(); 上述语句查询结果为空,数据库中数据保证没问题,去掉第一个条件,online_time时间范围后,可以查询到结果。 请问谁知道是怎么回事,谢谢。
请教关于Hibernate的一对多条件查询的问题
如题,比如一个老师带一个班,一共n个班,现在要查询每个班姓“张”的同学,按老师名显示,老师名下面显示张姓学生。就是(List)Teacher类里的(List)Students里只要需要的数据,不是全部对应,该怎么解决呀?呵呵,我刚开始学Hibernate,各位大侠别见笑,请不吝赐教! [b]问题补充:[/b] 那我说详细一点,Teacher类有(tid,name),Student类有(id,tid,name),一对多对应之后显示teacher时会自动关联所有的student,但是我希望只显示姓张的student。目标就是要用个循环显示所有的teacher,每个teacher下面显示他带的班级里的姓张的同学。拜托回答的详细一些,谢谢了。 [b]问题补充:[/b] 怎么没人回答呀?是不是这个问题太幼稚了,懒得回答我呀?我已经给了最高分了
Hibernate查询问题
现在遇到点麻烦。就是我想取出: <br />假如A表中有个B的外键。我要查询出B对象不为空的所有A <br />hibernate 查询条件对象不为空如何查询? <br />
Hibernate Criteria 有判断条件的子查询如何编码
# 1.项目上遇到用Hibernate Criteria 进行子查询的功能,自己对Hibernate Criteria 不是很熟悉,求助大神们 #sql语句如下: select a.exnm, a.ogcd,sum(a.amut) from( select exnm,ogcd, case when zsfg='1' then abs(rcsls) else abs(pram) end as amut from tranlist where stcd='S') a group by a.exnm,a.gocd 只知道多表的查询,不知道这个单表的子查询如何用Hibernate Criteria 技术如何实现这个sql语句,求教大神们
Hibernate关联查询
Project和User表关联,User表中有一个code字段表示上下级关系。 现在想用Hibernate的QBC查询方式完成以下条件的查询。 用sql表示是: [code="sql"] select p.* from Project p left join User u on p.userId = u.id where p.userId <> ? or u.code || '%' like ? [/code] 不知道如何实现,谢谢大家。 [b]问题补充:[/b] 呵呵,是不是我说的不清楚,没人理我。 就是说Project和User是多对一的关系。现在查询需要的是Project的id不等于一个条件或者Project关联的User的code加上一个%去like一个条件。
hibernate多表查询问题
hibernate查询数据库 例如Person表连接Adress表,Person表中的adressid与Adress表中的主键是多对一关系 Person的hibernate.xml配置如下:<many-to-one name=adress column=adressid not-null=false> 问题是:我要根据Adress表中的其他属性(如:adress.name)作为条件来查询Person表对应的数据。 (代码:dc=xxx.xxx(Person.class); dc.add(xxx.ilike("adress.name","%xxx%")); dao.find(dc);) 报错:could not solove : adress.name of (xx.xx.Person) (我想应该是hibernate根据xml配置生成sql语句时,没有按照想要的sql,就是 from person join adress where adress.name=xx) 菜鸟真心求解释,谢谢!
hibernate search多条件限制查询
# 最近在使用hibernate search时遇到了一些问题希望有大神能帮助解决 ## 如何多个限制条件限制下进行查询? ## 举例如下: 我有三个实体:学生(student),老师(teacher),课程(course) 学生和老师、课程均为多对多关系。现在我直接按照学生姓名进行全文检索可以实现,但我想加上两个限制条件进行搜索:1、老师编号(001,005),2、课程编号(x1,x2,x3)。 要求搜索结果: 1. 匹配学生姓名关键字 2. 老师范围限制在(001,005) 3. 课程编号限制为以上给定的几个之一
hibernate detachedcriteria 问题
利用hibernate 的 detachedCriteira 查询时,是不是restrictions条件越多,查询速度越快????
hibernate的Criteria条件查询的问题……
简单说,我用普通的hql查询语句正常,比如 [code="java"] from article t where t.type.name='新闻' [/code] article和文章类型type都正确映射了的……不用怀疑…… 所以这样用hql语句查询没问题…… 但如果改用Criteria来进行查询时,问题就发生了 [code="java"] DetachedCriteria criteria = DetachedCriteria.forClass(Article.clazz); criteria.add(Restrictions.eq("type.name", "新闻")) [/code] 这时查询会抛出 [code="java"] could not resolve property: typeof:……………… [/code] 的异常。 为什么?
hibernate 动态查询
我做得一个struts+hibernate的项目,有一个问题是这样的:student(学生持久化类),team(班级持久化类),academy(学院持久化类),student和team是一对多关系,team和Academy是一对多关系,student和Academy没有直接的关系。现在我想做一个动态查询,其中一段代码是这样的。 下面的代码很多,但是粗略看一下就行,不用一句一句的看 /** * 根据条件查询 */ public List byStudent(String sno,String sname,String classid,int academyid){ Criteria critera = getSession().createCriteria(Student.class);//里面是一个class对象,而不是HQL if(sno!=null&&!sno.equals("")){//如果equals在前面的话,容易报 nullpoint 异常 critera.add(Restrictions.like("sno", sno,MatchMode.ANYWHERE)); //如果是进行模糊查询的话,就要加一个参数,MatchMode.ANYWHERE ,否则就不能进行模糊查询 } if(sname!=null&&!sname.equals("")){ critera.add(Restrictions.like("sname", sname,MatchMode.ANYWHERE)); } if(address!=null&&!address.equals("")){ critera.add(Restrictions.like("address", address,MatchMode.ANYWHERE)); } if(classid!=0){ critera.add(Restrictions.eq("classes.cid",new Integer(classid))); } if(academyid!=0){ critera.add(Restrictions.like("academyid",new Integer(academyid)); } return critera.list(); } 问题是这样的,那个academyid也是需要进行动态查询的,但是critera.add(Restrictions.eq("?",new Integer(academyid)));这里的问好我不知道该填写什么,请大家帮一下 [b]问题补充:[/b] 别人贴出的代码都是截图,具体是怎样实现的? [b]问题补充:[/b] [code="java"]public class Student implements java.io.Serializable { private String id; //hibernate主键id 学号 private String name; //学生姓名 private String psw; //登录密码 private Team team; //所在班级 private Grade grade; //所在年级 private Approve approve; //学生是否通过素质拓展认证 private ColumnOne columnOne; [/code] [b]问题补充:[/b] [code="java"]public class Team implements java.io.Serializable { private String id; private String name; private Set<Student> students = new HashSet<Student>(); private Academy academy;[/code] [b]问题补充:[/b] [code="java"]public class Academy implements java.io.Serializable { private String id; private String name; private Set<Admin> admins = new HashSet<Admin>(); private Set<Team> teams = new HashSet<Team>();[/code] [b]问题补充:[/b] 上面的代码参数可能和下面的有一定的不一样,大家尝试着看吧 [b]问题补充:[/b] 谢了,有点急。帮忙看一下 [b]问题补充:[/b] [code="java"]下面的代码很多,但是粗略看一下就行,不用一句一句的看 /** * 根据条件查询 */ public List byStudent(String sno,String sname,String classid,int academyid){ Criteria critera = getSession().createCriteria(Student.class);//里面是一个class对象,而不是HQL if(sno!=null&&!sno.equals("")){//如果equals在前面的话,容易报 nullpoint 异常 critera.add(Restrictions.like("sno", sno,MatchMode.ANYWHERE)); //如果是进行模糊查询的话,就要加一个参数,MatchMode.ANYWHERE ,否则就不能进行模糊查询 } if(sname!=null&&!sname.equals("")){ critera.add(Restrictions.like("sname", sname,MatchMode.ANYWHERE)); } if(address!=null&&!address.equals("")){ critera.add(Restrictions.like("address", address,MatchMode.ANYWHERE)); } if(classid!=0){ critera.add(Restrictions.eq("classes.sid",new Integer(classid))); } if(academyid!=0){ critera.add(Restrictions.like("academyid",new Integer(academyid)); } return critera.list(); } [/code] [b]问题补充:[/b] 全部的积分都压上了,帮一下吧 [b]问题补充:[/b] [code="java"]Criteria critera = getSession().createCriteria(Student.class); if(classid!=0){ Criteria classes = critera.createCriteria("team"); classes.add(Expression.eq("id", classid)); } return critera.list();[/code] 你这是什么意思啊,没看明白,classes并没有和critera 关联上。能再详细一点么,加上点注释。 [b]问题补充:[/b] to yourgame 你的方法我尝试了,不行啊。还有别的办法没?谢了 [code="java"]critera.add(Restrictions.eq("team.academy.id",new Integer(academyid))); [/code] [b]问题补充:[/b] [code="java"]javax.servlet.ServletException: org.hibernate.QueryException: could not resolve property: team.academy.id of: pojo.Student org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) utils.EncodingFilter.doFilter(EncodingFilter.java:25) root cause org.hibernate.QueryException: could not resolve property: team.academy.id of: pojo.Student org.hibernate.persister.entity.AbstractPropertyMapping.throwPropertyException(AbstractPropertyMapping.java:43) org.hibernate.persister.entity.AbstractPropertyMapping.toColumns(AbstractPropertyMapping.java:63) org.hibernate.persister.entity.BasicEntityPropertyMapping.toColumns(BasicEntityPropertyMapping.java:31) org.hibernate.persister.entity.AbstractEntityPersister.toColumns(AbstractEntityPersister.java:1257) org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumns(CriteriaQueryTranslator.java:433) org.hibernate.loader.criteria.CriteriaQueryTranslator.getColumnsUsingProjection(CriteriaQueryTranslator.java:393) org.hibernate.criterion.SimpleExpression.toSqlString(SimpleExpression.java:45) org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:333) org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82) org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:67) org.hibernate.impl.SessionImpl.list(SessionImpl.java:1514) org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) dao.StudentDaoImpl.search(StudentDaoImpl.java:112) struts.action.StudentAction.search(StudentAction.java:93) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280) org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216) org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) javax.servlet.http.HttpServlet.service(HttpServlet.java:710) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) utils.EncodingFilter.doFilter(EncodingFilter.java:25) [/code] 就是这个错误,我试过了,只要是属性(team.academy.i)与student中的属性不定应就会有这种错误, [b]问题补充:[/b] 这是StudentDaoImpl的代码,你看一看 [code="java"] public List search(String id,String name,String academyid,String teamid){ List students = null; Session sess = HibernateSessionFactory.getSession(); Transaction tran = sess.beginTransaction(); Criteria critera = sess.createCriteria(Student.class); if(!"".equals(id)&&id!=null){ critera.add(Restrictions.eq("id",id)); } if(!"".equals(name)&&name!=null){ critera.add(Restrictions.eq("name",name)); } if(!"".equals(teamid)&&teamid!=null){ critera.add(Restrictions.eq("team.id",teamid)); } if(!"".equals(academyid)&&academyid!=null){ critera.add(Restrictions.eq("team.academy.id",academyid)); } students = critera.list(); tran.commit(); sess.close(); return students; }[/code]
Hibernate查询问题,详情见图片
![图片说明](https://img-ask.csdn.net/upload/201508/03/1438594134_211857.jpg) 条件查询,在hibernate里怎么写? ![图片说明](https://img-ask.csdn.net/upload/201508/03/1438594293_303601.jpg) 创建了一个数组来装这两个,但是报错,说类型匹配不上了
求助大神,关于hibernate里面的criteria查询
请问下在hibernate里面,用criteria的方式,写出主表左连接子表。并且查询条件是主表和子表的字段,请帮忙写个demo,单表的写过,多表的没写过,谢谢
hibernate 查询缓存 和 二级缓存 的使用是否与查询的条件有关?
前提条件是 hibernate 中 查询缓存 和 二级缓存 已经配置成功(使用的是EHCache);且在不同的session中用相同的查询语句(使用Query中的list),则查询缓存和二级缓存得到使用;然而当改变第二个session中的查询语句时未用到第一个session中的缓存?问是否hibernate的 查询缓存 和 二级缓存 的使用是否与查询的条件有关? 这是我的测试代码: [code="java"] public void testCache3(){ Session s = HibernateUtils.getSession() ; s.beginTransaction() ; Query query = s.createQuery("from User") ; query.setCacheable(true) ; [color=darkred]//第一次查询会发出sql[/color] List list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//改变查询条件时,也发出sql,为什么不是从上面的缓存中读取呢?[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//与上一个的查询条件相同,不发出sql[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; } [/code] 请问是否查询缓存 只对相同的查询条件才能其作用? 还有就是 相同的查询条件,第一次用Query中的list ,第二次用Critera中的list也不能使用第一次的缓存,为何谢谢? [b]问题补充:[/b] 前提条件是 hibernate 中 查询缓存 和 二级缓存 已经配置成功(使用的是EHCache);且在不同的session中用相同的查询语句(使用Query中的list),则查询缓存和二级缓存得到使用;然而当改变第二个session中的查询语句时未用到第一个session中的缓存?问是否hibernate的 查询缓存 和 二级缓存 的使用是否与查询的条件有关? 这是我的测试代码: [code="java"] public void testCache3(){ Session s = HibernateUtils.getSession() ; s.beginTransaction() ; Query query = s.createQuery("from User") ; query.setCacheable(true) ; [color=darkred]//第一次查询会发出sql[/color] List list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//改变查询条件时,也发出sql,为什么不是从上面的缓存中读取呢?[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//与上一个的查询条件相同,不发出sql[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; } [/code] 请问是否查询缓存 只对相同的查询条件才能其作用? 还有就是 相同的查询条件,第一次用Query中的list ,第二次用Critera中的list也不能使用第一次的缓存,为何谢谢? 那么查询缓存是否可以控制,就像二级缓存一样可以指定缓存数目,生存期等?谢谢 [b]问题补充:[/b] 前提条件是 hibernate 中 查询缓存 和 二级缓存 已经配置成功(使用的是EHCache);且在不同的session中用相同的查询语句(使用Query中的list),则查询缓存和二级缓存得到使用;然而当改变第二个session中的查询语句时未用到第一个session中的缓存?问是否hibernate的 查询缓存 和 二级缓存 的使用是否与查询的条件有关? 这是我的测试代码: [code="java"] public void testCache3(){ Session s = HibernateUtils.getSession() ; s.beginTransaction() ; Query query = s.createQuery("from User") ; query.setCacheable(true) ; [color=darkred]//第一次查询会发出sql[/color] List list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//改变查询条件时,也发出sql,为什么不是从上面的缓存中读取呢?[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//与上一个的查询条件相同,不发出sql[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; } [/code] 请问是否查询缓存 只对相同的查询条件才能其作用? 还有就是 相同的查询条件,第一次用Query中的list ,第二次用Critera中的list也不能使用第一次的缓存,为何谢谢? [b]问题补充:[/b] 前提条件是 hibernate 中 查询缓存 和 二级缓存 已经配置成功(使用的是EHCache);且在不同的session中用相同的查询语句(使用Query中的list),则查询缓存和二级缓存得到使用;然而当改变第二个session中的查询语句时未用到第一个session中的缓存?问是否hibernate的 查询缓存 和 二级缓存 的使用是否与查询的条件有关? 这是我的测试代码: [code="java"] public void testCache3(){ Session s = HibernateUtils.getSession() ; s.beginTransaction() ; Query query = s.createQuery("from User") ; query.setCacheable(true) ; [color=darkred]//第一次查询会发出sql[/color] List list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//改变查询条件时,也发出sql,为什么不是从上面的缓存中读取呢?[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; System.out.println("------------------------------------") ; s = HibernateUtils.getSession() ; s.beginTransaction() ; query = s.createQuery("from User u where u.name like 'yu9%'") ; query.setCacheable(true) ; [color=darkred]//与上一个的查询条件相同,不发出sql[/color] list = query.list() ; for(Iterator iter=list.iterator(); iter.hasNext();){ User user = (User)iter.next() ; System.out.println("user.getName ="+user.getName()) ; } s.close() ; } [/code] 请问是否查询缓存 只对相同的查询条件才能其作用? 还有就是 相同的查询条件,第一次用Query中的list ,第二次用Critera中的list也不能使用第一次的缓存,为何谢谢? 那么查询缓存是否可以控制,就像二级缓存一样可以指定缓存数目,生存期等?谢谢 还有一个问题刚才忘问了, 相同的查询条件,第一次用Query中的list ,第二次用Critera中的list也不能使用第一次的缓存,为何谢谢?
Hibernate Criteria查询问题:连表查询增加关联条件(生成的sql条件指定到on后面)
代码如下: Session session=this.getHibernateTemplate().getSessionFactory().getCurrentSession(); session.createCriteria(ProjectBD.class,"h") .add(Restrictions.eq("h.xmguid", xmguid)) .addOrder(Order.desc("h.subtime")) .createAlias("bidCompany", "b",Criteria.LEFT_JOIN) .add(Restrictions.eq("b.xxx", 1)) .list(); 这里连表生成的sql语句中b.xxx这个条件是在where后面的,怎么加到 left join ... on ( 这里 )
Hibernate查询添加条件就会报错不加就没问题
session.createQuery("from SysEmployee s where s.sn = :sn and s.password = :password ");执行这句会报错,如果没有查询条件就没问题;报的是java.lang.reflect.InvocationTargetException
关于hibernate一对多的查询问题(join的使用)!
我的HQL语句如下: [code="java"] def hql = new StringBuffer("SELECT ci FROM CarInfo ci join ci.drivers cds WHERE 1 = 1 ") [/code] 说明: CarInfo : 车辆信息表 每辆车有多个驾驶员驾驶。也就是一辆车对应多个驾驶员(set),我想通过驾驶员查找所对应的车辆,条件语句如下: [code="java"] if(params.driverName) hql << "AND cds.account.name LIKE '%${params.driverName}%' " [/code] %${params.driverName}% 为页面获取的参数,即驾驶员姓名 VO如下: CarInfo: [code="java"] class CarInfo implements Comparable { String carNo // 车牌编号 String brand // 品牌 String type // 型号 Date buyDate // 购买日期 Department dept // 所属部门 byte[] photo // 照片 String photoFileName Integer onDuty // 特殊情况下,是否值班车辆 Integer flag // 标志 Users fgLeader // 分管领导 String memo // 备注 SortedSet drivers SortedSet carCfgs static hasMany = [drivers : DriverInfo, carCfgs: CarCfg]    其它略。。。 } [/code] DriverInfo: [code="java"] class DriverInfo implements Comparable { Account account String driverLicense // 驾照类型 Integer flag String memo SortedSet cars static belongsTo = CarInfo   static hasMany = [cars : CarInfo]   其它略。。。 } [/code] Account: [code="java"] class Account { Long id Long account String name String sex String pid String dept String sno String flag 其它略。。。 } [/code] 使用的是Grails、Groovy 问题如下: [code="java"] Caused by: org.codehaus.groovy.grails.orm.hibernate.exceptions.GrailsQueryException: Invalid query [SELECT ci FROM CarInfo ci join ci.drivers cds WHERE 1 = 1] for domain class [class CarInfo] at CarInfoService.getList(CarInfoService.groovy:18) at CarInfoService$$FastClassByCGLIB$$4df581d3.invoke(<generated>) at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149) at CarInfoService$$EnhancerByCGLIB$$9ec3182d.getList(<generated>) at CarInfoService$getList.call(Unknown Source) at CarInfoController$_closure2.doCall(CarInfoController.groovy:21) at CarInfoController$_closure2.doCall(CarInfoController.groovy) [/code] 改为left join 和 right join都不行!请教hibernate高手。 而另外一个放到子查询里的join就可以执行,代码如下: [code="java"] def hql = new StringBuffer("FROM Account a WHERE TRIM(a.sno) IS NOT NULL ") if(params.carNo) hql << "AND TRIM(a.id) IN (SELECT di.account.id FROM DriverInfo di join di.cars cs WHERE cs.carNo LIKE ('%${params.carNo}%')) " [/code]
Hibernate动态查询返回count的方法
就是用户选择搜索结果的分页的实现,用户可以选择搜索范围,比如性别、名称、地址之类的,内容是用Criteria做的动态查询得到的,最多返回十个结果,但要返回int类型的全部结果的数量,就是count,不知道条件查询有没有返回int类型的count的方法(我没找到),用HQL组合的话还太麻烦了,HQL有返回int类型的方法吗?JDBC就直接queryforint了,Hibernate有没有同样效果的办法啊。 太简单的话表笑啊,刚学Hibernate一个多月 [b]问题补充:[/b] 查询条件是用Criteria拼成的,所以想用Criteria返回int类型的count值,刚才不知道方法,现在知道了,只要用criteria.setProjection(Projections.rowCount()).uniqueResult()就行了,用的getHibernateTemplate().execute(new HibernateCallback(),原来HibernateCallback中要返回Criteria,这个不知道,所以之前用setProjection的时候不对,现在已经实现了,谢谢
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
相关热词 c# singleton c#中类的默认值是 c#各种进制之间的转换 c# 正则表达式保留汉字 c#后台跨域 c#基础代码大全 c#指定combox选择 c#关系 mono c# 相差毫秒 用c#做一个简易计算器
立即提问