最近在做法院的一个档案管理项目,一直做的的查询是基于compass 的索引查询、检索,今天客户说要做一个一天之内的数据统计功能,并且这个数据时要天天打印出来,作为工作考核的,我也和大意,就按照“2010-05-24”到“2010-05-27”这样直接在数据库中查询,结果有数据,也没有仔细看,拿到客户那里,客户一实验,结果是什么数据也没有查到,我还不信,我说我测试的时候有数据的,怎么拿过来就没有任何数据了呢?奇怪。我过去一测试,果真数据什么也没有,还在怀疑数据库中是不是没有数据,结果,客户说自己今天就著录并且归档了部分数据,怎么可能没有呢?真实羞人的很,回来路上就想着,是怎么回事呢?自己写的代码没有错啊?后来仔细分析了原因,每次自己测试时候都是跨天测试的,结果是有数据,但是不是这天的数据,而是昨天的数据,这是由于使用的Jpa ——hibernate 实现,同步数据库的,JAP的时间格式使用SimpleDateFormat("yyyy-MM-dd")个格式之后,还是在数据库中“yyyy-MM-dd HH:mm:ss”保存的,后来改成前台代码以“yyyy-MM-dd”字符串格式传入,后台做一下处理。
/**
* 档案类型是不能缺少的 归档部门是可以缺省的 保管期限是不能缺省的 密级是可以缺省的
*/
@Override
public QueryResult<LawsuitArchive> queryAllLawsuitArchiveStatistics(Type_Archive archive, Type_PigeonholeDepartment department, Type_KeepTime keepTime, Type_SecretLevel secretLevel, String startTime, String endTime) {
Date startDate = null;
Date endDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
StringBuffer wherejpql = new StringBuffer("");
wherejpql.append(" o.pigeonholeTime >?1 and o.pigeonholeTime <?2 and o.type_Archive.type_ArchiveID=?3 ");
Object queryParams[] = new Object[3];
if (department != null && secretLevel == null) {// 密级是所有密级的,归档部门是不为空的
wherejpql.append(" and o.type_PigeonholeDepartment.type_PigeonholeDepartmentID=?4 ");
queryParams = new Object[4];
queryParams[3] = new Integer(department.getType_PigeonholeDepartmentID());
} else if (department == null && secretLevel != null) {
wherejpql.append(" and ( o.justVolumeSecretLevel.type_SecretLevelID=?4 or o.subsidiaryVolumeSecretLevel.type_SecretLevelID=?5 )");
queryParams = new Object[5];
queryParams[3] = new Integer(secretLevel.getType_SecretLevelID());
queryParams[4] = new Integer(secretLevel.getType_SecretLevelID());
} else if (department != null && secretLevel != null) {
wherejpql.append(" and o.type_PigeonholeDepartment.type_PigeonholeDepartmentID=?4 ");
wherejpql.append(" and ( o.justVolumeSecretLevel.type_SecretLevelID=?5 or o.subsidiaryVolumeSecretLevel.type_SecretLevelID=?6 )");
queryParams = new Object[6];
queryParams[3] = new Integer(department.getType_PigeonholeDepartmentID());
queryParams[4] = new Integer(secretLevel.getType_SecretLevelID());
queryParams[5] = new Integer(secretLevel.getType_SecretLevelID());
}
try {
startDate = sdf.parse(startTime.trim() + " 00:00:00");
endDate = sdf.parse(endTime.trim() + " 23:59:59");
} catch (ParseException e) {
e.printStackTrace();
}
queryParams[0] = startDate;
queryParams[1] = endDate;
queryParams[2] = new Integer(archive.getType_ArchiveID());
if (keepTime != null) {
wherejpql.append(" and o.type_KeepTime.type_KeepTimeID=" + keepTime.getType_KeepTimeID());
log.info("保管期限:" + keepTime.getType_KeepTime());
} else if (null == keepTime) {
log.info("所有保管期限........");
}
log.info("JPQL查询语句:" + wherejpql.toString());
return lawsuitArchiveDao.queryAllLawsuitArchive(LawsuitArchive.class, -1, -1, wherejpql.toString(), queryParams, null);
}
正是让人长见识了。
分享到:
相关推荐
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
本文将详细介绍该问题产生的原因、解决方法及其背后的原理。 #### 问题概述 当我们在Android Studio中尝试打开一个项目时,IDE(集成开发环境)会自动进行一系列初始化操作,包括构建Gradle项目信息(即“building...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
对需求变更进行协调管理,遇到问题迅速处理,强化时间点把控,实行内部经济承包责任制,将责任和效益挂钩,激励团队积极性。通过科学的开发进度计划和专业管理软件进行动态控制,根据开发进展和环境变化优化方案,...
这主要是为了解决内存的不稳定性和容量限制问题,并满足业务数据共享、大规模数据检索和数据管理的需求。 在企业级应用中,对象序列化适合少量对象的持久化,但不符合大规模查询和长时间保存的需求。因此,除了对象...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
Java EE电子商城系统课程设计是基于Java企业版(Java ...通过这个Java EE电子商城系统课程设计,学生能够全面了解并掌握企业级Web应用的开发流程,提升实际问题解决能力,并为未来从事相关开发工作打下坚实基础。
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
我们也想过很多办法解决这个问题,包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不...
例如,可能会要求你在有限时间内解决一个实际的编程问题,或者让你分析并优化一段代码的性能。 面试简历的编写需突出个人优势,注重项目经验和具体技术点的实现。同时,要确保简历内容真实,避免夸大其词。在描述...
- **插件支持**:VisualVM支持第三方插件扩展,提供更多高级功能,如SQL查询分析、JPA监控等。 6. **版本更新** VisualVM 133是较早的一个版本,后来Oracle将其开源并命名为JDK Mission Control (JMC),功能更加...