Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 数据库中的日期范围存储_Java_Angularjs_Html_Mongodb - Fatal编程技术网

Java 数据库中的日期范围存储

Java 数据库中的日期范围存储,java,angularjs,html,mongodb,Java,Angularjs,Html,Mongodb,我试图使用mongodb在数据库中存储daterange值,所以我使用了字符串返回类型,但无法保存daterange。是否可以将日期范围直接保存在数据库中,或者我必须将日期范围拆分为开始日期和结束日期并存储在数据库中?前端是AngularJS,后端是mongoDB MongoDB不提供任何类型的日期范围数据类型 Java8提供了Period和Duration类型。在Java8之前,有一个很棒的Joda Time库,它还提供了句点和持续时间数据类型 用于Java的MongoDB库没有任何类型的转换

我试图使用mongodb在数据库中存储daterange值,所以我使用了字符串返回类型,但无法保存daterange。是否可以将日期范围直接保存在数据库中,或者我必须将日期范围拆分为开始日期和结束日期并存储在数据库中?前端是AngularJS,后端是mongoDB

MongoDB不提供任何类型的日期范围数据类型

Java8提供了
Period
Duration
类型。在Java8之前,有一个很棒的
Joda Time
库,它还提供了句点和持续时间数据类型

用于Java的MongoDB库没有任何类型的转换器。它只知道
java.util.Data

不过,如果要存储Java8或Joda
Period
Duration
,则需要为Java MongoDB驱动程序编写客户数据类型转换器,或者直接在应用程序代码中进行转换。(两者几乎相同)

通过这种方式,您可以在MongoDB中将日期范围保存为
{range:{from:ISODate(“2015-01-01T00:00:00.000Z”)到:ISODate(“2015-01-02T00:00:00.000Z”)}

当然,您必须对
范围.from
范围.to
字段进行查询


当然,第二部分是,HTML日期范围选择器get中的值被正确序列化为字符串,并且可以由Java后端读取

尽管如此(例如,通过简单地使用
System.out.println(…)
)确保数据被Java正确反序列化


如果这一切都能实现,那么您可以处理MongoDB,即将一个DateRange对象转换为两个
java.util.Date
对象,等等。pp.

您能再解释一下您的问题吗。。就像您尝试过的东西一样,例如,您尝试存储的值以及存储时出现的准确错误??嗨,Viraj,我没有收到任何错误。。我尝试了“私有字符串日期范围;”然后实体类中的getter和setter。。。从ui中,我将值传递为ng model=“dateRange”。我无法保存到数据库中。我正在从daterange picker日历中选择日期范围。您是否尝试记录并检查是否在java类中收到日期。。?你听起来仍然很抽象,最好看一些代码,这样我们就不会问那么多问题了。。