【发布时间】:2012-01-12 16:18:49
【问题描述】:
我需要帮助来解决此类问题。应用程序需要支持多个数据库(MySQL、Oracle)。迁移到 JBoss 7 后,实体 ID 自动生成被破坏。 实体示例:
@Entity
@Table(name="foo")
public class Foo {
private Integer id;
private String model;
@Id
@SequenceGenerator(name="foo_seq_gen", sequenceName="foo_0", initialValue=1, allocationSize=1)
@Column(name="id", updatable=false)
@GeneratedValue(generator = "foo_seq_gen")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="model", length=64, updatable=false)
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
}
对于 Oracle,它工作正常。但是当尝试在 MySQL 上执行创建操作时,会出现以下错误:
15:34:56,290 ERROR [org.hibernate.util.JDBCExceptionReporter] (http-localhost-127.0.0.1-8080-1) Table 'scheme.foo_0' doesn't exist
因此 MySQL 尝试以序列的形式访问不存在的表,而不是使用本机自动生成机制。
有人知道治疗方法吗?
使用“表格”生成器策略没有帮助。
环境:
MySQL 5.5.16;
JBoss AS 7.1.0.Beta1;
Hibernate 3.6.1.
谢谢。
【问题讨论】: