這是我第一次使用hibernate,所以請原諒我,如果我要問簡單的建議。
我目前正在使用xml映射一個類(沒有註釋),我沒有我的表上的id,但有人告訴我,我被迫使用一個ID使用休眠,所以,我創建了SMS_MONITORING_ID字段到表,我也映射如下:休眠避免編號
<class name="smsbox.dal.model.SmsMonitoring" table="MST_SMS_MONITORING">
<comment></comment>
<id name="smsMonitoringId" type="long">
<column name="SMS_MONITORING_ID" />
<generator class="native" >
<param name="sequence">ID_SMS_MONITORING</param>
</generator>
</id>
我已經在我的oracle數據庫(ID_SMS_MONITORING)做了一個序列,而我不希望休眠處理ID可言,我甚至想避免在我的java代碼中(當我保存對象時)引用任何id。
我該如何完成我的意願,讓hibernate忽略分配id的整個過程?
PS我映射ID(長)到Oracle「數字」類型,什麼是避免可能出現的問題(長這麼想的嵌入數字或反之亦然)有誰能夠給我提供一些鏈接的規則很好地解釋Hibernate和Oracle DB的映射類型(我沒有發現任何有趣的東西)。
感謝
你實際上不需要一個ID,而是某種鍵,可能是一個複合鍵。如果你想做更新,它當然必須是獨一無二的。但是沒有理由將一個ID作爲單個列或數字。 – extraneon
我不同意你的看法,根據hibernate的說法,每個表都應該有主鍵,主鍵始終是唯一的,但是你是對的,我可以創建任何類型的主鍵甚至複合類型。 –