gpt4 book ai didi

java - Hibernate 使用 Uuid 生成

转载 作者:行者123 更新时间:2023-11-29 05:30:06 24 4
gpt4 key购买 nike

似乎有很多关于此的问题,但没有一个能解决我的问题。

我正在尝试使用 hibernate 注释来生成 UUID。

我的注释在下面...

@Id
@GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
@Column(name = "uuid", unique = true)
public UUID getUuid() {
return uuid;
}

我在我的 pom.xml 中使用 MySQL 5.2 和 Hibernate 3.5.6,如下所示...

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.6-Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>

启动我的应用程序后,出现以下错误...

ERROR: org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table players (uuid tinyblob not null unique, espnid integer, espnUrl varchar(255), firstname varchar(255), lastname varchar(255), primary key (uuid))
ERROR: org.hibernate.tool.hbm2ddl.SchemaExport - BLOB/TEXT column 'uuid' used in key specification without a key length

什么是正确的注解?我使用的 hibernate 版本不正确吗?我对 MySQL 的使用不正确吗?

我的方言详情如下...

<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
</beans:prop>
<beans:prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory
</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
<beans:prop key="hibernate.hbm2ddl.auto">create</beans:prop>
</beans:props>
</beans:property>

错误意味着未指定长度,但如果我将其输入到@Column 中,则没有任何变化。

由于 hibernate-annotations 直到那时我才使用旧版本的 hibernate,如果这现在是一个死 repo ,我将移动到更高版本。

最佳答案

我认为问题出在 getUuid() 方法返回的类型上。根据 hibernate 文档,它需要是 String

uuid:

uses a 128-bit UUID algorithm to generate identifiers of typestring that are unique within a network (the IP address is used). TheUUID is encoded as a string of 32 hexadecimal digits in length.

关于java - Hibernate 使用 Uuid 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com