首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring + Testcontainers + Jpa +具有多个用户/模式的Oracle数据库

Spring + Testcontainers + Jpa +具有多个用户/模式的Oracle数据库
EN

Stack Overflow用户
提问于 2021-05-14 15:37:10
回答 2查看 230关注 0票数 0

我有一个正在尝试用testcontainers测试的应用程序。数据库是来自testcontainers的oracle-xe。属性文件具有用于自动发现模式的属性jpa.hibernate.ddl-auto = true。这里的问题是,我有来自几个模式/用户的实体,这似乎不能很好地使用oracle-xe testcontainer (如果我从实体的@Table注释中删除de属性'schema‘,它工作得很好)。

我使用schema.sql文件作为变通方法来加载模式,它工作得很好,但我希望在没有这个文件的情况下也能实现同样的效果。有没有人知道为什么会发生这种行为,以及如何修复它?

EN

回答 2

Stack Overflow用户

发布于 2021-05-14 15:47:44

您可以创建自己的Oracle映像,在其中创建各种模式,然后将此映像与TestContainers一起使用。

票数 0
EN

Stack Overflow用户

发布于 2021-07-08 23:33:40

如果这还是个问题..。这是我的两分钱。

用户和模式是否不同?如果是这样的话,您可能需要手动为模式创建一个用户(提示...创建用户会为给定的用户名创建模式)。来自甲骨文关于CREATE SCHEMA的官方文档

备注:

此语句实际上并不创建模式。Oracle数据库会在您创建用户时自动创建方案(请参阅创建用户)。该语句允许您使用表和视图填充您的模式,并授予对这些对象的特权,而不必在多个事务中发出多个SQL语句。

此外,您可能需要一些额外的授权等,以确保连接到数据库的用户和与模式相关的用户具有足够的权限。

示例:

代码语言:javascript
复制
CREATE USER <USERNAME> IDENTIFIED BY <password>;
GRANT UNLIMITED TABLESPACE TO <USERNAME>;
GRANT CREATE SESSIONT TO <USERNAME>;
GRANT CONNECT, RESOURCE, DBA TO <USERNAME>;

仅供参考。我不是,也不会自称是数据库专家。因此,请与您的DBA确认一下;)

考虑到testcontainer的oracle DB镜像的额外信息

在类似的情况下,我使用this博客的部分内容创建了一个没有数据量的oracle-image。这允许DB的初始化状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67530668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档