JBoss AS 7上MySQL的ID自动生成
我需要帮助来解决这个问题。应用程序需要支持多个数据库(MySQL、Oracle)。迁移到JBoss 7后,实体id自动生成被破坏。 例如:JBoss AS 7上MySQL的ID自动生成,mysql,hibernate,jboss7.x,Mysql,Hibernate,Jboss7.x,我需要帮助来解决这个问题。应用程序需要支持多个数据库(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", initialVa
@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;
}
}
对于甲骨文来说,它工作得很好。但在尝试对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.
谢谢。我不确定您是否需要用于Oracle的
@SequenceGenerator
,但对于JBoss AS 7.1.0.CR1b和MySQL,我在ID自动生成和此注释方面没有问题:
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private long id;