Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串强制转换为CriteriaBuilder谓词的日期_Java_Date_Criteria_Hibernate Criteria - Fatal编程技术网

Java 如何将字符串强制转换为CriteriaBuilder谓词的日期

Java 如何将字符串强制转换为CriteriaBuilder谓词的日期,java,date,criteria,hibernate-criteria,Java,Date,Criteria,Hibernate Criteria,我正在使用CriteriaBuilder为我们的应用程序创建搜索。我们的一个表有一个列,用于存储多种数据类型 实施类似于本问题答案的选项2: 基本上,我想做的很简单: 谓词datePredicate=cb.lessThanfield.getMyTable_u2;.value,新日期 但是,值是字符串,无法与日期进行正确比较 我的问题是,是否有某种方法可以将字符串转换/强制转换为日期以进行比较?不可能通过强制转换,但可以使用SimpleDataFormat将字符串解析为日期: String dat

我正在使用CriteriaBuilder为我们的应用程序创建搜索。我们的一个表有一个列,用于存储多种数据类型

实施类似于本问题答案的选项2:

基本上,我想做的很简单:

谓词datePredicate=cb.lessThanfield.getMyTable_u2;.value,新日期

但是,值是字符串,无法与日期进行正确比较


我的问题是,是否有某种方法可以将字符串转换/强制转换为日期以进行比较?

不可能通过强制转换,但可以使用SimpleDataFormat将字符串解析为日期:

String date1AsString = "20160101";
Date date1AsDate = new SimpleDateFormat("yyyyMMdd").parse(date1AsString);

使用这种格式设置程序的问题在于field.getMyTable.value从技术上讲不是提供字符串而是提供路径。除非我遗漏了什么,否则这是行不通的。对不起,我以为你的问题是如何将字符串转换为日期。您使用的是哪个路径类?它来自javax.persistence.criteria。将保存到字符串字段中的日期格式是什么?类似于2016年8月16日。据我所知,您无法为了比较而强制转换字符串字段。您必须将值字段更改为日期类型。