java - Hibernate 阻止我登录只读 Postgresql 数据库
问题描述
我在 AWS 上复制了我的一个数据库。这是一个 RDS 实例。之后,我所做的只是将我的应用程序中的 pom 文件中的端点更改为指向新的只读副本。但是,当我通过 intelliJ 在本地运行代码并进入登录页面时,登录会产生以下错误:
Hibernate: select authorizat0_.id as id1_0_2_, authorizat0_.expirationDate as expirati2_0_2_, authorizat0_.timeCreated as timeCrea3_0_2_, authorizat0_.token as token4_0_2_, authorizat0_.user_id as user_id5_0_2_, user1_.id as id1_6_0_, user1_.timeCreated as timeCrea2_6_0_, user1_.uuid as uuid3_6_0_, user1_.version as version4_6_0_, user1_.company_id as company_5_6_0_, user1_.emailAddress as emailAdd6_6_0_, user1_.firstName as firstNam7_6_0_, user1_.hashedPassword as hashedPa8_6_0_, user1_.isVerified as isVerifi9_6_0_, user1_.lastName as lastNam10_6_0_, user1_.phoneNumber as phoneNu11_6_0_, user1_.role as role12_6_0_, user1_.signatureImage as signatu13_6_0_, company2_.id as id1_1_1_, company2_.timeCreated as timeCrea2_1_1_, company2_.uuid as uuid3_1_1_, company2_.version as version4_1_1_, company2_.accountId as accountI5_1_1_, company2_.additional_setting as addition6_1_1_, company2_.beginningDate as beginnin7_1_1_, company2_.city as city8_1_1_, company2_.country as country9_1_1_, company2_.expirationDate as expirat12_1_1_, company2_.logo as logo25_1_1_, company2_.logoType as logoTyp26_1_1_, company2_.name as name27_1_1_, company2_.need_disclaimer as need_di28_1_1_, company2_.state as state30_1_1_, company2_.statement as stateme31_1_1_, company2_.streetAddress1 as streetA32_1_1_, company2_.streetAddress2 as streetA33_1_1_, company2_.use_customer_supplier_id as use_cus35_1_1_, company2_.user_id as user_id37_1_1_, company2_.zipcode as zipcode38_1_1_ from authorization_token authorizat0_ left outer join "user" user1_ on authorizat0_.user_id=user1_.id left outer join company company2_ on user1_.company_id=company2_.id where authorizat0_.user_id=?
Hibernate: select nextval ('hibernate_sequence')
09:44:19.651 [qtp951562287-24] ERROR o.h.e.jdbc.spi.SqlExceptionHelper - ERROR: cannot execute nextval() in a read-only transaction
有谁知道如何解决这一问题 ?
使用只读数据库时是否需要对休眠进行不同的配置?只需将我的端点更改为一个,此应用程序即可与任何写入数据库一起正常工作
解决方案
看起来应用程序正在尝试通过 INSERT 语句写入一些数据,它试图获取序列值并失败,因为数据库是只读的。您必须调整应用程序,使其不在此数据库上执行任何写入操作。
推荐阅读
- python - 如何立即将 2 美元添加到用户帐户余额中 在 Django 博客上查看帖子
- javascript - 为什么这不是 JSON?
- time-complexity - 为什么哈希表被认为是 O(1) 时间复杂度而不是 O(n)?
- java - 为什么 Glassfish 服务器在使用 ZoneId 创建 java.time.LocalDate 实例时抛出 NoSuchMethodError
- javascript - 当用户使用passportjs成功登录时如何在reactjs中重定向页面
- python - 在终端中为 VSCODE 运行代码与运行 Python 文件
- r - 用括号内的值替换值
- blazor - Blazor 服务器 Microsoft.JSInterop.JSException:“值 'window.resizeListener' 不是函数
- python - 在函数之外创建按钮和标签并在 Tkinter 需要时将它们网格化是不是更好的礼仪?
- bluetooth-lowenergy - Wahoo kickr BLE 未找到 CSC 服务