Есть ли проблемы с использованием байта [] в качестве первичного ключа в объекте JPA?
Я хочу использовать UUID в качестве моего первичного ключа, но при хранении в виде строки я чувствую, что он будет слишком большим.
Я думал сделать что-то подобное, чтобы сохранить идентификатор в виде байта [] и установить его в качестве идентификатора моей сущности:
public static byte[] byteArray(UUID uuid) {
long lsb = uuid.getLeastSignificantBits();
long msb = uuid.getMostSignificantBits();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
try {
dos.writeLong(lsb);
dos.writeLong(msb);
dos.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte[] data = bos.toByteArray();
// System.out.println("Byte Array Length "+data.length);
return data;
}
Будут ли у меня проблемы с размещением индексов в БД? Я использую как Postgres, так и HSQL. Я использую Hibernate в качестве поставщика JPA.