Метка времени в БД и java.util.Date в Entity вызывает проблему с округлением при загрузке с OpenJPA - PullRequest
1 голос
/ 24 февраля 2012

Я загружаю значение из базы данных, которая является типом данных Timestamp в IBM DB2, но должна быть отображена как java.util.Date для графического интерфейса JSF.Я подумал, просто скажи JPA, что это временная метка, и она справится.Я сделал это следующим образом:

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DATE")
private Date myTimeStampAsDate;

Однако, если в базе данных есть Дата 9999-12-31 23:59:59, она будет округлена в моей сущности до даты 10000-01-0100: 00

Если я отображу его как настоящий java.sql.Timestamp, он отлично загружает даже миллисекунды.Что мне нужно сделать, чтобы избежать этого "поведения округления", но сохранить java.util.Date для моей сущности и GUI?

1 Ответ

1 голос
/ 10 апреля 2012

Openjpa предоставит опцию словаря данных, чтобы не округлять миллисекунды для java.util.Date свойств, помеченных @Temporal(TemporalType.TIMESTAMP).Надеюсь, он выйдет с версией 2.2.1 / 2.3.X и будет продолжаться.Пожалуйста, следуйте этой проблеме Jira, чтобы увидеть, когда она будет полностью решена:

https://issues.apache.org/jira/browse/OPENJPA-2159

Свойство выглядит так в вашем persistence.xml (по умолчанию будет true):

<property name="openjpa.jdbc.DBDictionary" value="roundTimeToMillisec=false" />

По умолчанию будет true

...