在使用byte []作爲JPA實體中的主鍵時是否存在任何問題?將UUID用作數據庫主鍵,Java類型是一個字節[]
我想使用一個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;
}
我有沒有把指數在此DB中的任何麻煩?我正在使用Postgres和HSQL。我使用Hibernate作爲我的JPA提供程序。
需要在數據庫之外生成ID,並且需要能夠使用UUID從DB中檢索任何對象。 – systemoutprintln 2009-04-08 21:31:02