当前位置: 首页 > 知识库问答 >
问题:

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

萧飞
2023-03-14

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

我一加上

@GeneratedValue(策略=GenerationType.Sequence,generator=“some_seq”)

在创建sql-serverEntityManagerFactory时,我会得到一个BeanCreationException,因为org.hibernate.dialt.SQLServerDialect不支持序列。但是,该实体唯一被使用的地方是在使用db2EntityManagerFactory的DAO中,而db2EntityManagerFactory使用了适当的方言。

我错过了什么?

共有1个答案

韩弘阔
2023-03-14

尝试使用generationtype=auto而不是generationtype=sequence

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

hibernate使用了最佳的生成策略,对于某些数据库是序列,而对于其他数据库则是自动递增。

(注:我从不使用批注,但我使用映射文件。 对于不同的数据库类型很好地工作。generationtype=auto对于批注应该是相同的。)

 类似资料:
  • 环境:Spring Boot 2.2.6 启动程序:spring-boot-starter-data-jpa,*-thymeleaf,*-web,*-Tomcat,*-test 其他依赖项:mariadb-java-client 2.6.0,spring-boot-devtools(管理),lombok(管理) DB mariadb:10.4 Hibernate方言:mariadb103 使用内部

  • 问题内容: 我必须在Hibernate,Jpa的应用程序(弹簧)中使用两个不同的数据库。我想直接将不同的表定义为不同的数据源。所以我使用两个不同的持久性单元,然后尝试使用 和 将不同的表放入不同的包中。但这不起作用。用第一个数据源来影响所有表。然后我尝试将诸如类的名称写入持久性XML文件 和it.two.app.domain.second.OtherTable 但是,当我运行Log时,说表’fir

  • [错误]生成无法读取1个项目->[帮助1][错误] [错误]项目com.example.angularjs:demo:0.0.1-快照(C:\users\vvk\download\demo\POM.xml)有1个错误[错误] com.example.angularjs:demo:0.0.1-快照:无法解析的父POM:无法传输项目org.springframework.boot:spring-boo

  • 我们在Spring Boot应用程序中使用多个数据源配置。这两个数据源都只属于mysql。 但当我运行它时,它出现了以下异常: 对此如何化解?

  • 问题内容: 我在Junit应用程序上下文文件中定义了三个(JDBC)。其中两个需要进行事务管理;使用这两个数据源时,我不必链接任何方法(它们完全彼此独立)。 当我使用单个事务管理器作为时,我没有问题,即使已被使用但未在相应方法中进行管理。尽管如此,在还需要管理来自各种DAO类的方法(仅使用这些方法)后,我添加了第二个事务- 。上下文文件包含以下内容: 由于要定义多个事务管理器,因此我用他们自己的值

  • 我正在从事一个Gradle项目,该项目使用多个源集来构建不同的战争。 从命令行一切正常。格拉德正确地构建了战争。但是在IntelliJ中它说对于每个*。src/k下的java文件无法解析来自src/main的依赖关系。 我试图通过使用idea gradle插件将目录添加为SourceDir来修复它,但不幸的是,这没有起作用。