Hibernate无法在具有多个数据源的Spring项目中实例化id生成器

Der*_*rek 3 java sql-server db2 spring hibernate

我有一个使用Hibernate的Spring项目有两个数据源(db2和sql-server).

我一添加

@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SOME_SEQ")

到我的实体类中的列字段,我BeanCreationException在创建sql-server时得到一个,EntityManagerFactory因为org.hibernate.dialect.SQLServerDialect它不支持序列.但是,这个实体被使用的唯一地方是DAO,它使用的EntityManagerFactory是使用适当方言的db2 .

我错过了什么?

Joh*_*nna 5

试试GenerationType=AUTO而不是GenerationType=SEQUENCE.

@GeneratedValue(strategy = GenerationType.AUTO, generator = "SOME_SEQ")
Run Code Online (Sandbox Code Playgroud)

使用AUTO hibernate使用最佳拟合生成策略,即一些数据库的序列和其他数据库的自动增量.

(注意:我从不使用注释,但我使用的是映射文件.<generator class="native">适用于不同的数据库类型.GenerationType=AUTO对于注释应该是相同的.)