我想加入两个模型,都使用org。冬眠主键的id.UUIDGenerator。但在启动时,我得到以下错误:
组织。冬眠工具模式。spi。CommandAcceptanceException:通过JDBC语句执行DDL“alter table user_role add constraint FK5scdquo6f12cpstqai86x4biw外键(roles_role_id)references role(role_id)”时出错
你知道我做错了什么吗?
我的代码:
用户模型:
@Entity
@Table
public class User implements Serializable {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "user_id", columnDefinition = "VARCHAR(255)")
private String userId;
@Column(name = "name")
private String name;
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "userId"), inverseJoinColumns = @JoinColumn(name = "roleId"))
@ManyToMany
private List<Role> roles;
public User(){
this.roles = new ArrayList<>();
}
// Getter & Setter
}
榜样:
@Entity
@Table
public class Role implements Serializable {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "role_id", columnDefinition = "VARCHAR(255)")
private String roleId;
@Column(name = "role_name")
private String name;
@Column(name = "description")
private String description;
@ManyToMany(mappedBy = "roles")
private List<User> users;
public Role(){
this.users = new ArrayList<>();
}
// Getter & Setter
}
用户DAO:
public interface UserDAO extends JpaRepository<User, String > {
}
角色DAO:
public interface RoleDAO extends JpaRepository<Role, String > {
}
联接列的名称应与列名类似,而不是与模型变量名类似。在你的情况下,你应该使用
joinColumns = @JoinColumn(name = "user_id")
和
inverseJoinColumns = @JoinColumn(name = "role_id"))
不
joinColumns = @JoinColumn(name = "userId")
和
inverseJoinColumns = @JoinColumn(name = "roleId"))
也对所有联接列执行此操作
我的印象是,UUID规范需要一个有保证的、真实的、全球唯一的结果,不是99.999999999999%的唯一结果,而是100%的唯一结果。从规格来看: UUID为128位长,可以保证跨空间和时间的唯一性。 看起来java只支持UUID规范的V3和V4。V4并不是真正独特的。对于使用< code > namuuidfrombytes 的V3实现,下面的结果是重复的,因为计算机太快了(编辑:循环到10
我是xslt的新手。我想使用xslt生成32位长UUID并将其作为输入添加到xml中。我试图使用数学自由的随机函数,但得到错误。 输入XML XSLT代码段 我正在使用在线编辑器,但得到如下异常。http://xslttest.appspot.com/ 错误:找不到名为的匹配0参数函数{http://exslt.org/math}随机()。没有具有本地名称random的Saxon扩展函数 实际上,
看完这篇博文https://blog . starkandwayne . com/2015/05/23/uuid-primary-keys-in-PostgreSQL/ 我想知道更多关于Django是如何生成uuid的,因为我用它们作为我的pk。嗯,根据文档,https://docs.djangoproject.com/es/1.9/ref/models/fields/#uuidfield,Dja
问题内容: 我需要为数据库主键列生成唯一的Long ID。 我以为我可以使用 UUID.randomUUID()。getMostSignificantBits(), 但是有时它会产生一些负数,这对我来说也是个问题。 是否有可能仅从UUID生成正数长?会有数十亿个条目,因此我希望每个生成的键必须唯一。 问题答案: 之所以起作用,是因为当您按位与1进行操作时,它允许按原样传递同一位数字;当您按位与0进
问题内容: 我正在尝试为我的Django对象获取唯一的ID。在Django 1.8中,它们具有UUIDField。我不确定如何使用此字段来为模型中的每个对象生成唯一的ID。 这是我对UUIDField的要求 我可以重现UUID模型的ID,但是每次我都得到完全相同的ID。:(。 例如: id然后每次都给我相同的id。怎么了,我该如何解决?感谢您的帮助! 问题答案: 我不确定为什么要创建UUID模型。