WedX - журнал о программировании и компьютерных науках

Дата гибернации не экономит миллисекунды

I'm saving an entity in hibernate with a creation date

    @Id
    @Column(name = "dtcreation")
    @Type(type="timestamp")
    private Date creation;
and I put a new Date on this field:
    entity.setCreation(new Date());
    entityDao.persist(entity);
but when it is saved on the db the time don't contains the milliseconds, but put it a 0 if I try to update with a query the value of the milliseconds it works...someone can help me?

после метода сохранения у меня есть запись с 06.01.2011 15:00:00.0, но если я сделал ОБНОВЛЕНИЕ, я могу изменить миллисекунды, поэтому БД поддерживает это .. база данных informix

01.06.2011

  • java.util.Date довольно старый и ужасный. Если можете, исследуйте Joda Time вместо этого. Он интегрируется с Hibernate. joda-time.sourceforge.net/contrib/hibernate/userguide.html 01.06.2011
  • я предполагаю, что ваша основная проблема - это столбец БД, в который вы сохраняете (а не дату, у меня никогда не было проблем с java.util.Date) 01.06.2011
  • Я сомневаюсь, что это проблема спящего режима. Что лежит в основе базы данных? 01.06.2011
  • Ваше последнее предложение запутано и сбивает с толку, я бы его отредактировал, но я не хочу его испортить, если моя интерпретация неверна. Если бы вы могли уточнить ваше описание того, что происходит, это было бы полезно. 01.06.2011
  • Какую БД вы используете? Вы уверены, что используете правильный диалект? 01.06.2011
  • Бьюсь об заклад, он использует сервер MSSQL, а базовый тип столбца - datetime. 01.06.2011
  • Покажите нам код метода сохранения EntityDao. Я предполагаю, что что-то перезаписывает новое значение Date(), которое вы поместили в поле создания. 01.06.2011
  • Я тоже думаю, что это что-то, чтобы сделать банку DB или JDBC. Совсем недавно я работал над проектом hibernate, где использовал hibernate и java.util.Date. Проблем с миллисекундами не было. БД была postgres 01.06.2011

Ответы:


1

Это соответствует задокументированному поведению java.util.Date и java.sql.Timestamp

java.util.Date хранит данные с точностью до секунды, а java.sql.Timestamp представляет собой тонкую оболочку для размещения наносекундного значения временной метки SQL. Если вы читаете примечание к javadoc Timestamp, в нем четко указывается эта разница.

Если вы не хотите терять свои вторые дроби и не хотите исследовать альтернативные библиотеки дат (например, вышеупомянутое время Joda), вам нужно сделать поле java.sql.Timestamp и использовать миллисекундное значение текущая дата для построения начального значения

java.util.Date date = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
entity.setCreation(timestamp);
01.06.2011
  • Как у вас есть сущность? Hibernate не экономит миллисекунды: S 30.03.2020

  • 2

    Без вашего кода для тестирования мне трудно дать окончательный ответ, но взглянув на Javadoc для java.sql.Timestamp, похоже, вы смешиваете типы с аннотацией поля в виде метки времени. Измените тип Java с Date на Timestamp и посмотрите, решит ли это вашу проблему.

    01.06.2011
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]