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

一个愚蠢的错误

阅读更多
在Hibernate使用中我犯了一个严重的低级错误,就是把字段的映射类型写错了,一个及其隐蔽的错误,真是害人不潜呀。下面把Hiberante映射文件展示如下:
	<class name = "SystemLog" table="SS_SysLog" dynamic-insert="false" dynamic-update="true">
		<id name ="id" column = "ID" type ="integer">
			<generator class="native"/>
		</id>
		<property name="data" type="date"/>
		<property name="time" type="date"/>
		<property name="level" type="string" length="10"/>
		<property name="message" type="text"/>
	</class>

以上是一个错误的映射文件。我的数据表结构是这样定义的:
CREATE TABLE `ss_syslog` (
  `id` int(11) NOT NULL auto_increment,
  `data` date default NULL,
  `time` datetime default NULL,
  `level` varchar(10) character set gb2312 default NULL,
  `message` mediumtext character set gb2312,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT;

其中
引用
`time` datetime default NULL,
是datetime类型的。我要做的工作就是按照一个时间段来查找记录。查询条件是
where time between startTime and endTime
即根据time字段查询。以下是我写的HQL代码:
from SystemLog sysLog where sysLog.time between :starTime and :endTime
很简单只是一执行就找不到记录,而且后台没有出错的信息。真是很隐蔽。坚持调试一天后找到题的真正原因。即:Hibernate配置文件中字段类型不匹配由于Hiberante配置文件中是这样描述time字段的
<property name="time" type="date"/>
即:time是date型的。注:此处的date并不是指Java中的date而是数据库的数据类型。所以,在执行上面的HQL语名时,日期中的时间部分被自动截掉,导致找不到记录,解决办法很简单把date改成timestamp就一切OK了。哈哈。
以下是改后的XML文件:
	<class name = "SystemLog" table="SS_SysLog" dynamic-insert="false" dynamic-update="true">
		<id name ="id" column = "ID" type ="integer">
			<generator class="native"/>
		</id>
		<property name="data" type="date"/>
		<property name="time" type="timestamp"/>
		<property name="level" type="string" length="10"/>
		<property name="message" type="text"/>
	</class>
分享到:
评论

相关推荐

    面试千万别犯的7个愚蠢错误

    在职场竞争激烈的环境中,面试是决定你是否能获得心仪职位的关键环节。然而,许多求职者在面试中常常犯一些愚蠢的错误,导致...避免这些愚蠢错误,真诚、专业、谦逊地面对每一个环节,将大大提高你成功获得工作的几率。

    SubFrameworks:一个非常,非常愚蠢的XcodeLLVMclang错误…

    一个真正愚蠢的Xcode 11构建问题 坚持使用Objective-C,您将获得有史以来最快的构建! 是的,也许不是。 在构建应用程序时,在Objective-C构建阶段,Xcode 11似乎完全停滞了(从完整的内核使用率下降到10-20%CPU...

    Chrome AWS SAML令牌到期提醒。「Chrome AWS SAML Token Expiry Reminder」-crx插件

    UPDATE v1.0.10-修复了先前更新中的一个愚蠢错误,该错误打破了重新认证。 对不起。 &gt;&gt;&gt; UPDATE v1.0.9-修复了没有现有角色/凭证的身份验证错误-添加了不显示通知弹出窗口的选项-发布到Github...

    奥美培训广告行业的8个愚蠢问题.pptx

    在广告行业中,如果一个客户带来的收益远小于投入的时间和资源,应当评估是否继续合作。理智的做法是寻找更匹配的合作伙伴,提高效率和回报。 2. **问题二:沉没成本与决策** 提出这个问题是为了强调避免过度投资...

    愚蠢的地球人算24源码

    该项目名为“愚蠢的地球人算24源码”,从描述来看,它是一个相对简单的小型作品,旨在通过编程解决经典的“24点游戏”。这个游戏的目标是使用四张牌上的数字通过加、减、乘、除运算得到24。 ### 2. **技术栈** - **...

    如何避免愚蠢.doc

    标题和描述虽然没有提供具体的技术性内容,但它们提出了一个普适性的话题——如何避免愚蠢。这个主题涉及自我认知、批判性思维、观点开放性和自我反省等心智成长的关键要素。以下将从这些方面展开详细说明: 1. **...

    12个愚蠢的Windows默认设置,此时不改更待何时?.docx

    以下是一些可以改进的愚蠢的Windows默认设置,让你的电脑使用体验更加顺畅: 1. **退格键在浏览器中的返回功能**:默认情况下,按退格键会返回上一页,这可能导致误操作。在Chrome和Firefox中,可以通过设置或插件...

    bs:一个愚蠢而简单的构建系统

    本文将详细介绍"bs"(Barely Sufficient Build System),一个被描述为“愚蠢而简单”的构建系统。尽管其名字带有调侃意味,但bs在JavaScript项目中的实用性不容忽视。 ### 一、bs是什么? bs,全称Barely ...

    chkcrontab:用于检查系统crontab文件(通常为etccrontab和etccron.d)的错误和常见错误的工具

    chkcrontab是一个脚本,用于检查crontab文件,例如/etc/cron.d和/etc/crontab 。 它试图捕获明显的错误并警告crontab文件中的可疑行。 一些有效的行将生成警告。 某些愚蠢但有效的crontab行也会产生错误。 通过执行...

    ssdrbs:愚蠢的简单灾难恢复备份脚本

    综上所述,"ssdrbs"是一个面向初级用户的简单备份解决方案,涵盖了备份与恢复的基础知识,同时也可能涉及到一些高级特性,如版本控制和自动化。理解和使用这个脚本将有助于提升数据保护能力,并加深对备份恢复流程的...

    一个简易Lisp解释器1

    例如,`(() (abc xyz) (a b (c) d))` 是一个包含三个元素的列表,其中第二个元素是一个两元素列表,而第三个元素是一个包含一个元素列表的列表。 Scheme是Lisp的一种主要方言,由盖伊·史提尔二世和杰拉德·杰伊·...

    react-native-ui-blueprint:不再有错误的页边距,文本大小和许多其他愚蠢的视觉错误。 React Native UI蓝图允许您实现像素完美的设计

    没有更多的错误边距,文本大小和许多其他愚蠢的视觉错误。 React Native UI蓝图允许您实现像素完美的设计。 安装 您可以通过Yarn或NPM安装React Native UI蓝图。 # Yarn yarn add react-native-ui-blueprint # NPM...

    GeoffreyJames10大愚蠢销售管理策略.doc

    【Geoffrey James十大愚蠢销售管理策略】 销售管理是一门艺术,它关乎如何有效地引导团队达成销售目标。根据著名销售教练Geoffrey James的经验,他总结出十大常见的销售管理错误,这些错误可能导致销售团队效率低下...

    quickfix:修复节点模块中问题的最佳愚蠢主意

    为什么? 您每分钟要花费80亿兆个小时来... 有一个愚蠢的解决方案。 一个惊人的,节省澳大利亚的愚蠢解决方案: $ quickfix push Quickfix将您__quickfix__的更改保存到__quickfix__文件夹中,然后稍后您可以运行q

    gifygram:一个愚蠢的网站,用于在视频顶部制作图像动画

    TypeScript是JavaScript的一个超集,提供了静态类型检查、接口、类和模块等特性,这使得代码更易于维护和扩展,同时降低了因类型错误导致的运行时问题。对于开发者来说,选择TypeScript意味着项目具有更好的可读性...

    factoryman:一个有趣的愚蠢游戏

    在"FactoryMan"中,每个关卡都是一个新的挑战,需要玩家编写不同的Python脚本来完成任务。这样的设计既锻炼了玩家的逻辑思维能力,也使他们熟悉Python语法。此外,游戏还可能引入类和对象的概念,让玩家创建自定义的...

    GoodCheapAndFast:一个愚蠢的应用程序,您可以选择这三个要求,但始终无法完成

    好便宜又快您可以选择这3个要求的愚蠢应用程序,但始终无法完成。 如果成功,则意味着代码中存在一些错误。 如果您有太多时间要消磨时间,则可以修复它们。 如果您认为这是该死的狗屎,请给它加注星标。 谢谢。

    如何改变12项愚蠢的Windows默认设置.docx

    **问题描述**:在大多数浏览器(如IE、Safari)中,默认情况下,按下退格键会回到上一个浏览页面,这可能导致正在编辑的内容被意外删除。 **解决方案**: - **Chrome/Firefox**:可以通过设置或安装插件来禁用此...

Global site tag (gtag.js) - Google Analytics