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