在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提供程序。
请记住,使用SQL客户端的用户在查询byte [] id时会遇到麻烦。这就是为什么db id通常是数字的原因。手写查询要容易得多。
问题内容: 如果我使用ID nr:s代替VARCHARS作为外键会更好吗?最好使用VARCHARS的ID nr:s istead作为主键吗?ID nr是指INT! 这就是我现在所拥有的: 我可能已经想到了: 还是我在这里认为完全错误? 问题答案: VARCHAR用于任何KEY的问题在于它们可以保留WHITE SPACE。空格由任何无法在屏幕上读取的字符组成,例如空格标签,回车符等。当您开始追查为什
问题内容: 我在80多个不同的表中都有一个ReferenceIDvarchar(6)列。我需要在分配ID的政府组织实施更改之后,将其扩展到整个db的varchar(8)。 我希望声明一个游标以获取表名,如下所示: 然后按如下所示编辑类型: 之所以失败,是因为该列是某些表中主键的一部分(并且PK中包含的列因表而异)。 我真的不想不必为每个表手动删除并重新创建每个PK。 在游标中,有一种方法可以在更改
问题内容: 由于多种原因^,我想在某些Django模型中使用UUID作为主键。如果这样做,我仍然可以使用通过ContentType使用通用关系的外部应用程序,例如“ contrib.comments”,“ django-voting”或“ django-tagging”吗? 以“ django-voting”为例,Vote模型如下所示: 该应用似乎假设要投票的模型的主键是整数。 内置的注释应用程序
问题内容: 在我的项目中,我习惯将字符串转换为,但是如果字符串不是type,它将抛出,那么如何验证该字符串? 问题答案: 您应该使用正则表达式进行验证,例如: 用鸡蛋测试 或带括号
是否可以重载一个字段类型成为另一个字段类型? 如果是,是否可以提供一些例子?
我刚到Spring 我尝试使用spring rest api和Hibernate更新Mysql中的一个现有值。但它每次都会抛出一个错误。 错误消息: