Мой User
класс сущности содержит поле хэша пароля, которое представляет собой массив байтов с фиксированной длиной (32, поскольку это SHA-256 hash).
@Entity
public class User {
@Column(nullable=false)
private byte[] passwordHash;
...
}
Как вы можете видеть, я не аннотировал его чем-то особенным, только NOT NULL.
Это работает, но будет ли оно работать? Моя схема генерируется Hibernate, но я точно не знаю, что она генерирует (в настоящее время я использую базу данных HSQL в памяти).
Я обеспокоен этим, поскольку он не знает, что это фиксированный length массив (поле length
аннотации Column
применяется только к строкам), он сохранит этот хеш в поле BLOB, которое добавляется в запись как указатель (если я понимаю правильно, как работают базы данных).
Это правда, и как я могу это изменить? Должен ли я просто закодировать хэш как строку с base64 или hex, принимая небольшое влияние на производительность / правильность этого?