JPAエンティティの主キーとしてバイト[]を使用する際に問題はありますか?UUIDをデータベースの主キーとして使用すると、Javaのタイプはバイト[
プライマリキーとしてUUIDを使用したいが、文字列として格納すると、大きすぎると感じる。
私は私のエンティティのIDとしてそれをバイト[]としてIDを保存して設定するには、このような何かをやって考えていた:
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;
}
私はDBに、この上のインデックスを入れてどんな問題があるのでしょうか?私はPostgresとHSQLの両方を使用しています。 JPAプロバイダとしてHibernateを使用しています。
IDはデータベース外で生成され、UUIDを使用してDBからオブジェクトを取得できる必要があります。 http://iops.io/blog/storing-billions-uuid-fields-mysql-innodbに関する – systemoutprintln