2012-01-12 2 views
0

Мне нужна помощь для решения этой проблемы. Приложение должно поддерживать несколько БД (MySQL, Oracle). После миграции на JBoss 7 генерация идентификатора объекта была нарушена. Etity пример:ID автогенерация для MySQL на JBoss AS 7

@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. 

Спасибо.

ответ

0

Я»не уверен, что если вам нужен @SequenceGenerator для Oracle, но с JBoss AS 7.1.0.CR1b и MySQL У меня нет никаких проблем с ID автоматической генерацией и это аннотаций:

@Id @GeneratedValue(strategy=GenerationType.AUTO) 
private long id; 
Смежные вопросы