Сохранение хэша в виде байтового массива с JPA

Мой 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, принимая небольшое влияние на производительность / правильность этого?

6
задан Bart van Heukelom 10 October 2010 в 22:23
поделиться