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