2015-04-08 5 views
0

Я пытаюсь сохранить значение DateRange в базе данных с использованием MongoDB, так что я использовал Струнный тип возвращаемого но я не в состоянии спасти DateRange. Можно ли сохранить daterange непосредственно в базе данных или мне нужно разделить daterange как дату начала и дату окончания и сохранить в базе данных? Frontend является AngularJS и Бэкэнд MongoDB ...Диапазон хранение в базе данных

+0

Можете ли вы объяснить ваш вопрос немного больше .. Как вещи, которые вы попробовали и, например, значения, которые вы пытаетесь сохранить, и точную ошибку, которую вы получаете при хранении? –

+0

Привет, Viraj, я не получаю никаких ошибок. Я попробовал 'private String dateRange;' а затем геттеры и сеттеры в классе сущностей ... из ui Я передаю значение как ng-model = "dateRange". Я не могу сохранить в базе данных. Я выбираю диапазон дат из календаря выбора времени. –

+0

Вы пытались войти в систему и проверить, получена ли дата в классе java ..? Вы все еще звучали абстрактно, может быть лучше увидеть какой-то код, так что мы не задаем столько вопросов. –

ответ

0

MongoDB не предоставляет какой-либо тип данных DateRange.

Java8 обеспечивает Period и Duration типов. Перед Java8 есть отличная библиотека Joda Time, которая также предоставляет типы данных Period и Duration.

библиотеки MongoDB для Java, не имеет какого-либо конвертер для этих типов. Он знает только java.util.Data.

Хотя, если вы хотите сохранить Java8 или Joda Period или Duration, вам необходимо либо написать конвертер типа данных клиента для Java MongoDB Driver, либо выполнить преобразование непосредственно в коде приложения. (Оба были бы почти одинаковыми).

Таким образом, вы можете сохранить диапазон дат, как { range: {from: ISODate("2015-01-01T00:00:00.000Z"), to: ISODate("2015-01-02T00:00:00.000Z") } } в MongoDB.

Тогда, конечно же, вы должны делать свои запросы на полях range.from и range.to.


Вторая часть курса, что значение из HTML Диапазона дат Picker получить сериализованную-х правильно в строку и может быть прочитано вашим Java бэкэндом.

Удостоверьтесь (например, просто используя System.out.println(...)), что данные были правильно десериализованы Java.

Если это все работает, Вы можете иметь дело с MongoDB, то есть превращение объекта DateRange двух java.util.Date объектов и т.д. стр.

Смежные вопросы