我最近从 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 时不更改所有实体中的所有注释)。
谢谢你。