Недавно я перешел с Hibernate 3.6.4 на Hibernate 5.0.0 Final. У меня есть объект с идентификатором, аннотированным следующим образом:
@Id
@GeneratedValue(generator="SEQ_MENUITEM")
@SequenceGenerator(name="SEQ_MENUITEM",sequenceName="SEQ_MENUITEM", allocationSize=1)
@Column(name = "ID_MENUITEM")
private int id;
конфигурация спящего режима может быть:
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
or
<property name="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
в зависимости от производственной среды программное обеспечение должно быть переносимым либо в Oracle, либо в Sql Server 2008.
Используя Hibernate 3.6.4, он автоматически переключается с последовательности на идентификатор (автоинкремент), когда указан SQLServer2008Dialect, поэтому он работает нормально.
Используя Hibernate 5, у меня есть эта ошибка:
com.microsoft.sqlserver.jdbc.SQLServerException: недопустимое имя объекта «SEQ_MENUITEM».
Он ищет последовательность вместо того, чтобы переключиться на личность. Моя среда разработки — Sql Server 2014 (поддерживающая последовательности), но мой диалект — 2008, а производственная среда — 2008.
Есть идеи? Что-то изменилось с 3.6.4 на 5? Я не могу найти никакой информации или какой-либо дополнительной конфигурации xml (конечно, без изменения всех аннотаций во всех объектах при переключении с оракула на сервер sql).
Спасибо.