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