在 JPA 实体中使用 byte[] 作为主键有什么问题吗?
我想使用 UUID 作为我的主键,但存储为字符串我觉得它太大了。
我正在考虑做这样的事情来将 ID 存储为 byte[] 并将其设置为我的实体 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;
}
我在数据库中放置索引会有什么问题吗?我同时使用 Postgres 和 HSQL。我使用 Hibernate 作为我的 JPA 提供程序。