`
xly_971223
  • 浏览: 1283825 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate日期查询引发的问题

阅读更多
下面的代码是查询某两个日期间的记录
	public int countTodayLogin(){
//		return (Integer)createQuery("select count(*) from User where lastLoginTime between ? and ?")
//				.setDate(0, this.getStartOfToday())
//				.setDate(1, this.getEndOfToday())
//				.setCacheable(true)
//				.uniqueResult();
		return (Integer)createCriteria()
				.add(Restrictions.between("lastLoginTime",getStartOfToday(),getEndOfToday()))
				.setProjection(Projections.count("id"))
				.uniqueResult();
	}

不知道为什么 第一种方法就是查不出结果来 (注掉的代码)
另外下面两个方法是获取一天的开始和结束时间 
感觉写的挺麻烦的 不知道有没有更简单的方法
	private Date getStartOfToday(){
		Calendar today = Calendar.getInstance();
		int year = today.get(Calendar.YEAR);
		int month = today.get(Calendar.MONTH);
		int day = today.get(Calendar.DAY_OF_MONTH);
		return new GregorianCalendar(year, month, day, 0, 0, 0).getTime();
	}
	
	private Date getEndOfToday(){
		Calendar today = Calendar.getInstance();
		int year = today.get(Calendar.YEAR);
		int month = today.get(Calendar.MONTH);
		int day = today.get(Calendar.DAY_OF_MONTH);
		return new GregorianCalendar(year, month, day, 23, 59, 59).getTime();
	}


还有一点就是SimpleDateFormat格式化时要注意的问题: HH大些输出24小时格式  hh小写是12小时 
下班了 撤退!
在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss
分享到:
评论

相关推荐

    jbpm4.4整合spring2.5(ibatis与hibernate全整合)

    创建`jbpm.cfg.xml`文件,并导入多个配置资源,包括默认配置、业务日历、事务处理、流程定义、BPMN支持、身份管理等。这一步骤对于初始化jbpm引擎至关重要,确保其能够根据项目需求正确加载和运行。 ### 5. 工作流...

    马士兵hibernate文档.doc

    但需要注意的是,某些策略如`GenerationType.AUTO`在分布式系统或集群环境下可能会引发问题,因此在这些环境中需要谨慎使用。 综上所述,Hibernate提供了丰富的功能和灵活性,帮助开发者在Java应用程序中无缝处理...

    Hibernate Validator校验参数疑点难点方法详解.docx

    在Java开发中,数据校验是非常重要的一环,它能够确保程序接收到的数据符合预期,避免因数据异常引发的问题。JSR 303 - Bean Validation 规范就是为了解决这一问题而提出的,它定义了一套标准的注解来声明和执行数据...

    jeecmsv7-linux下流量统计日期转换错误修复.zip

    然而,任何软件都可能存在一些问题,Jeecms v7在Linux环境下运行时,可能会遇到流量统计日期转换错误。这种错误通常与时间处理、日期格式化或时区设置有关,特别是在跨平台的Linux环境中,可能由于环境差异导致数据...

    sql server查询时间技巧分享

    使用Hibernate进行数据查询时,HQL语言要求日期参数必须是`Date`类型。因此,如果你的查询语句如`from Person as p where p.date = :date`,传递的参数`date`必须是Java的`java.util.Date`类型,否则会引发类型转换...

    eSql语法学习资料

    ESQL类似于Hibernate中的HSQL,其语法与标准SQL非常相似,但又针对Entity Framework进行了优化和扩展。ESQL主要通过字符串形式来执行查询,这为开发者提供了更加灵活的方式来操作数据库。 #### 二、ESQL查询结果集...

    航空物流管理系统

    这可以通过Struts2的拦截器机制或JavaScript前端校验实现,确保输入的数据符合业务逻辑,减少因输入错误引发的问题。 此外,航空物流管理系统还可能涉及到其他高级功能,如货物追踪、航班动态更新、自动化调度等。...

    struts验证框架的实例

    例如,可以使用Hibernate Validator的注解来定义更丰富的验证规则,如日期范围、数字比较等。 总结来说,Struts验证框架提供了一种有效的方式来管理和执行用户输入的验证,提高了应用的健壮性和用户体验。通过合理...

    实现年月日的级联更新

    通过这种方式,当我们修改`Event`对象的日期并将其保存时,Hibernate会自动处理`Attendee`对象的级联更新。 总结来说,级联更新是保持数据库中相关数据一致性的有效手段,尤其是在涉及日期字段的场景下。正确理解和...

    java中验证脚本组件

    这样可以保证业务流程的正常进行,避免因非法数据引发的问题。 3. **安全性考虑**:防止恶意用户通过注入恶意脚本(如XSS攻击)来篡改或窃取数据。Java中的验证脚本可以过滤掉这些潜在的威胁,提高应用的安全性。 ...

    oralce和db2兼容开发注意事项

    在Oracle中,视图中使用别名与表字段同名可能不会引发问题,但DB2对此有更严格的限制。当视图别名与表字段同名时,DB2可能会报“SQL0153N”错误。为了避免这种冲突,应当为视图中的列名提供唯一的别名,如在示例中...

    Xstream 相关jar包

    2. **安全性**:由于Xstream可以直接将对象转换为XML,这可能引发安全问题,如代码注入。因此,在使用Xstream时,必须确保只序列化可信的数据,并通过`XStream aliases`来限制可接受的对象类型,防止恶意对象的反...

    java中常用jar包

    - **Hibernate**:是一个ORM(对象关系映射)框架,通过`hibernate-core.jar`等文件,将Java对象映射到数据库表,简化数据库操作。 - **Struts**或**Spring MVC**:这两者都是MVC(模型-视图-控制器)架构的实现,...

    java开发常用工具类大全,程序员必备工具

    它们可以帮助开发者确保用户输入的数据符合预设规范,防止因输入错误引发的程序异常。 2. **各种转换类**: 包括数字与字符串之间的转换、日期时间格式化、对象序列化与反序列化等。例如,`Integer.parseInt()` 和...

    Pieces:Java 8 | Sprint Boot子| 一些零碎的东西

    4. **Optional类**:为了解决null值引发的空指针异常问题,Java 8引入了`Optional<T>`类,它是一个可以为null的容器对象,鼓励开发者明确处理null值情况。 5. **方法引用来代替Lambda**:除了Lambda表达式,Java 8...

    湖北华中科技 2013最新Java面试题之笔试题

    - `try`块包含了可能引发错误的代码。 - 如果`try`块中的代码发生错误,则执行`catch`块中的代码,并将错误对象传递给`e`参数。 - `alert`语句显示错误名称和信息。 **使用`window.onerror`:** ```javascript ...

    JBolt:一个Java库-开源

    这不仅可以提高开发效率,还能减少因手动操作引发的潜在错误。 接下来是JBolt对通用设计模式的实现。设计模式是软件工程中的一种最佳实践,它提供了解决常见问题的标准解决方案。JBolt可能已经预封装了一些常见的...

    java

    - 线程同步:为了防止多个线程同时访问共享资源引发的问题,Java提供了synchronized关键字、wait/notify机制等同步手段。 6. **网络编程** - Socket编程:Java的Socket和ServerSocket类用于网络通信,实现客户端-...

Global site tag (gtag.js) - Google Analytics