对此似乎有很多问题,但没有一个能解决我的问题。
我正在尝试使用休眠注释来生成 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
什么是正确的注释?我是否使用了不正确的休眠版本?我是否在 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,因为hibernate-annotations直到那时才会出现,如果这现在是一个死回购我将移动到更高版本。