亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過遺留映射在 Hibernate 5 中指定基于序列的生成值

如何通過遺留映射在 Hibernate 5 中指定基于序列的生成值

浮云間 2023-06-08 14:08:23
我的問題是我正在將項目組合從 Java 8/Hibernate 4.x 堆棧遷移到 Java 11/Hibernate 5.4 堆棧。在第二種情況下,一旦應用程序嘗試保存對象,我就會收到此錯誤:org.postgresql.util.PSQLException:錯誤:關系&ldquo;hibernate_sequence&rdquo;不存在我上面提到的另一個問題的答案提供了一些見解,但我仍然不明白為什么會出現該錯誤:我們所有的實體一直在使用每個自己的序列,并且該序列在相應的 hbm.xml 中明確指定。這是一個這樣的映射文件:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"?? "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping default-lazy="false">? ? <class name="&hellip;" table="data_receiving">? ? ? ? <id name="systemId" column="system_id">? ? ? ? ? ? <generator class="sequence">? ? ? ? ? ? ? ? <param name="sequence">system_id_seq</param>? ? ? ? ? ? </generator>? ? ? ? </id>? ? ? ? <property name="source" column="source" />? ? ? ? &hellip;? ? </class></hibernate-mapping>看起來序列的規范被忽略了。我查閱了一些有關使用 XML 的遺留 Hibernate 映射的文檔,但我找不到與 Hibernate 5 相關的任何內容,據報道 Hibernate 5仍支持此類映射。一個解決方案可能是完全遷移到注釋,但該組合包含十幾個應用程序,這些應用程序具有數十個表和總數量(在一個應用程序中)超過 1200 列。這項任務根本不切實際,更何況一些應用程序正在從頭開始重寫為微服務。我的問題是是否仍然支持我所使用的序列生成標識符的規范?
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

我不得不深入研究 Hibernate 的源代碼以找到一個:參數sequence已重命名為sequence_name.

<param name="sequence">system_id_seq</param>

現在必須

<param name="sequence_name">system_id_seq</param>

這使得有必要更新所有 hbm.xml 文件,這是我在 Eclipse 中使用查找和替換所做的。


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號