java程序休眠一分钟_java – 休眠时间标准

为什么使用Restrictions.like(…)?

你应该使用Restrictions.eq(…)。

注意,您也可以使用.le,.lt,.ge,.gt作为比较运算符的日期对象。 LIKE运算符对于这种情况是不合适的,因为当您希望根据列的部分内容匹配结果时,LIKE非常有用。

请参阅http://www.sql-tutorial.net/SQL-LIKE.asp参考。

例如,如果您有一个名称列,其中有一些人的全名,您可以在“robert%”这样的名称,以便以“robert”开头的所有条目返回(%可以替换任何字符)。

在你的情况下,你知道你尝试匹配的日期的完整内容,所以你不应该使用LIKE但是相等。我猜Hibernate在这种情况下不会给你任何异常,但是无论如何,你可能会遇到与Restrictions.eq(…)相同的问题。

您使用代码的日期对象:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-YYYY");

String myDate = "17-04-2011";

Date date = formatter.parse(myDate);

该日期对象在0h,0分钟,0秒和0纳秒等于17-04-2011。

这意味着您的数据库中的条目必须具有该日期。我的意思是,如果你的数据库条目有一个日期“2011年4月17日19:20:23.7http://www.sql-tutorial.net/SQL-LIKE.asp000”,那么将不会被检索,因为你只是要求那个日期:“2011年4月17日00:00: 00.0000000000\” 。

如果要从某一天检索数据库的所有条目,则必须使用以下代码:

SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-YYYY");

String myDate = "17-04-2011";

// Create date 17-04-2011 - 00h00

Date minDate = formatter.parse(myDate);

// Create date 18-04-2011 - 00h00

// -> We take the 1st date and add it 1 day in millisecond thanks to a useful and not so known class

Date maxDate = new Date(minDate.getTime() + TimeUnit.DAYS.toMillis(1));

Conjunction and = Restrictions.conjunction();

// The order date must be >= 17-04-2011 - 00h00

and.add( Restrictions.ge("orderDate", minDate) );

// And the order date must be < 18-04-2011 - 00h00

and.add( Restrictions.lt("orderDate", maxDate) );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值