我有一个带有以下ID的Hibernate Managed Entity
@Id
@GeneratedValue(generator = "hibernate-uuid")
@GenericGenerator(name = "hibernate-uuid", strategy = "uuid2")
private UUID uuid;
在重新启动服务器之前,我插入,获取并删除这些实体没有问题。服务器重新启动后,我无法使用基本的Hibernate get
和delete
操作找到数据库中仍存在的实体。
我看到与本地H2 和我的MySQL 实例的相同的问题 。这段代码是Java 7,我正在运行dropwizard 0.8.1
。当我从包含Hibernate升级的dropwizard 0.7
升级到4.3.5-Final
时,就会出现此问题。
例如:
UUID id = UUID.fromString(myUuid)
session.get(myClass, id);
此代码从数据库中的行返回预期的对象。现在我重新启动服务器后
UUID id = UUID.fromString(myUuid)
session.get(myClass, id);
它不返回任何记录。我能够验证表中仍然存在的相同记录,并且ID尚未被修改。
修改
实际上,这只是我基于H2文件的实例中的一个问题。当我将H2从1.3.172升级到1.4.185
时,这个问题就开始了