2

我最近从 Hibernate 3.6.4 切换到 Hibernate 5.0.0 Final。我有一个 ID 以这种方式注释的实体:

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

或者

<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 配置(当然,在从 oracle 切换到 sql server 时不更改所有实体中的所有注释)。

谢谢你。

4

0 回答 0