Miałem encję z zmienna created
typu Date
public class UserEntity {
...
@Basic(optional = false)
@Column(name = "created", nullable = false, updatable = false)
@CreatedDate
private Date created;
...
}
tabela tworzyła kolumnę z typem TIMESTAMP
i poprawnie dodawało obiekt do tabeli
[EL Fine]: sql: 2018-05-02 21:54:25.578--ClientSession(210949780)--Connection(1559972721)--INSERT INTO users (activation_token, avatar_id_in_cloud, avatar_provider, created, email, email_change_token, enabled, entity_version, modified_date, new_email, password, unique_id, username) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
bind => [null, null, null, [tutaj ==> 2018-05-02 21:54:25.279 <== tutaj, TkM2Gs9Hrd@gmail.com, null, true, 1, B@6f8060ac, null, $2a$12$/MwdBoXwBgHlxnsicVW.w.UWdYo6ulLH87aZtSxhdbBYA.9QacUXy, 74a45e29-c1f8-40dc-ac25-a7196d7870b4, JonkiPro]
jednak zgodnie z Java 8 zmieniałem typ Date
na Instant
.
public class UserEntity {
...
@Basic(optional = false)
@Column(name = "created", nullable = false, updatable = false)
@CreatedDate
private Instant created;
...
}
Teraz automatycznie tworzy tabelę z kolumną created
typu LONGVARBINARY
, polecenie wygenerowane wygląda tak
[EL Fine]: sql: 2018-05-02 21:54:25.578--ClientSession(210949780)--Connection(1559972721)--INSERT INTO users (activation_token, avatar_id_in_cloud, avatar_provider, created, email, email_change_token, enabled, entity_version, modified_date, new_email, password, unique_id, username) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
bind => [null, null, null, [tutaj ==> B@6f8060ac <== tutaj, TkM2Gs9Hrd@gmail.com, null, true, 1, B@6f8060ac, null, $2a$12$/MwdBoXwBgHlxnsicVW.w.UWdYo6ulLH87aZtSxhdbBYA.9QacUXy, 74a45e29-c1f8-40dc-ac25-a7196d7870b4, JonkiPro]
zamiast daty jest jakiś ciąg znaków B@6f8060ac
, a w bazie to już w ogóle zapisane jest jako aced00057372000d6a6176612e74696d652e536572955d84ba1b2248b20c00007870770d02000000005aea177110a133c078
. Co to się dzieję z datą? Używam bazy H2.