Автоматическая генерация идентификатора для MySQL на JBoss AS 7 - PullRequest
0 голосов
/ 12 января 2012

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

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

Спасибо.

1 Ответ

0 голосов
/ 19 января 2012

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

@Id @GeneratedValue(strategy=GenerationType.AUTO)
private long id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...