Hibernate中處理無主鍵表的問題
前兩天同事讓我配置一個表的hbm檔案,麻煩的是這個表沒有Primary Key。今天在hibermate.org.cn找到解決方法,明天再去實踐 :)
主鍵是必須有的,要麼是單欄位的id,要麼是組合的composite-id,這一點可以從hibernate-mapping-2.0.dtd的第37行看的出來。還有參考手冊的4.1.4節也說:“Mapped classes must declare the primary key column of the database table.”想象一下,沒有主鍵,session如何load一個class呢?
id應該是必須有的,但id不一定要對應資料庫表的主鍵,只要能唯一標識一條紀錄就行。如果你的表沒有主鍵,那你可以選取若干個column作為composite-id(大不了用所有的column),但很可能會帶來很多不便。
相關推薦
Hibernate中處理無主鍵表的問題
前兩天同事讓我配置一個表的hbm檔案,麻煩的是這個表沒有Primary Key。今天在hibermate.org.cn找到解決方法,明天再去實踐 :) 主鍵是必須有的,要麼是單欄位的id,要麼是組合的composite-id,這一點可以從hibernate-mapping-
Hibernate對無主鍵表的操作
Db2 表:Test 只有一個測試欄位:name character(10) Hibernate的hbm檔案:Test.hbm.xml <xml version="1.0"?> <hibernate-mapping> <class
goldengate 同步無主鍵表
scott.bonus表無主鍵無唯一索引,若是在gg源端發出,會導致gg目的端abend,除非目的端複製程序引數檔案有APPLYNOOPUPDATES 或者ALLOWNOOPUPDATES 引數) update scott.t1 set ename='bos' wher
--oracle刪除數據庫表(無主鍵)中重復的記錄
數據庫 create 數據庫表 new 刪除 distinct 主鍵 alter bsp --oracle刪除數據庫表(無主鍵)中重復的記錄 1, CREATE TABLE newtable as SELECT distinct * FROM
oracle中無主鍵多表更新方法
首先看下sql server中的一段關於多表更新的update語句 UPDATE table1 SET BankAccount=t_Maintenance_Account.BankAccount FROM table1 INNER JOIN table2 ON (ta
hibernate 對映無主鍵的資料庫表
做東西發現數據庫查出來的資料是重複資料,如果有3條記錄就重複第一條記錄3次,後來發現是表無主鍵,且hibernate對映檔案必須有id屬性,搜了搜發現要使用符合主鍵的方法.................以下轉載自一個帖子裡內容: MyEclipse自動生成的那個貌似比
如何獲取數據表中自增主鍵的值
兩個 包含 enc gpo into int acl sql emp 一、MySql數據庫 當向數據庫中插入一條數據的時候,默認是拿不到自增主鍵的值的, 需要設置如下兩個屬性才可以拿到主鍵值! 設置userGeneratedKeys屬性值為true:使用自動增長的主
binlog_format=ROW模式下mysql表無主鍵造成的從庫延遲(卡住)
osi 一個 線程 查詢日誌 事務 發現 沒有 主從架構 應該 場景: MySQL-5.6.30, 主從架構, 只讀從庫的SQL線程卡在某一個事務兩個多小時沒有動過, show processlist發現從庫當時沒有連接和慢查詢語句;show open TABLES wh
當資料庫表中不存在主鍵
select @rownum :[email protected] + 1 AS rowNum, a.* from (select @rowNum := 0) r, tableName a order by a.fileName 上面的查詢語句中顯示的內容就是將rowNum作為一個
使用MyEclipse自動生成Hibernate對映檔案和VO類及無主鍵生成2個VO類的問題
----使用MyEclipse自動生成Hibernate對映檔案和VO類及無主鍵生成2個VO類的問題 ----MyEclipse 10 1.切換MyEclipse Database Explorer環境,new一個Driver,以Oracle資料庫舉例,在完善資訊並引入j
Oracle中查詢沒有主鍵的表
SELECT * FROM user_tables A WHERE NOT EXISTS ( SELECT * FROM user_constraints b WHERE A .table_name = b.table_name AN
OGG對於沒有主鍵表的處理
問:想用ogg對生產庫做個報表庫。現在生產庫中還有一堆表沒有主鍵(其中有些表的記錄甚至完全一樣),對這些表上的操作容易導致報表庫REPLICAT abended,請問這在OGG配置中是如何避免的?HANDLECOLLISIONS? 答: In order t
sqlserver中檢視沒有主鍵值但是想進行分組計數查詢時該怎麼處理?
sqlser的view平時用的很多了,但是一直都是當做一個虛擬表格來使用。 最近碰到一個需求,要求把原有的資料進行分組查詢,同時還需要進行計數統計。 原有邏輯就是通過entity和view配合直接顯示在頁面上,在view裡沒有主鍵值,所以顯示新資料時總是達不到要求, 因此將對映表中的ID加入view裡,
hibernate無主鍵對映
在hibernate中,表結構如果沒有主鍵的話,對映時是會把所有的欄位預設為類似的聯合主鍵形式,就到時候就會產生2個實體類,1個人實體ID,另外一個則為真正的資料欄位 在查詢時有可能會產生一些問題, 例如,空指標,獲取的list有長度,但是實際陣列卻為空 這是一個很惱火的問題
如何在資料庫表中建立複合主鍵
(即多個欄位同時作為主鍵)主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。 建立主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。 1.在資料庫提供的GUI環境中建立(以SQL7為例)。 輸
如何在sqlserver資料庫表中建立複合主鍵
主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。 建立主鍵有兩種方法:一種是在資料庫提供的GUI環境中建立,另一種是通過SQL語句執行建立,下面分別介紹。 1.在資料庫提供的GUI環境中建立(以SQL7為例)。
Hibernate複合主鍵中其中有主鍵是引用外來鍵情況下的配置方法
這個有兩種配置方式。一種是對映一個也是複合主鍵一部分的外來鍵列,通過一般的<many-to-one>元素,並用insert="false" update="false"禁用該列的任何Hibernate插入或者更新。另一種方式是<key-many-to-on
oracle 表結構、表字段、表中資料、主鍵約束的相關操作
1.表字段的的操作1)增加欄位語法:alter table tablename add (column datatype [default value] [null/not null] ….);(比較增加主鍵約束:alter table table_name add cons
SQL 一個表中可不可以沒有主鍵
一個 cnblogs 兩個 簡單的 www. best 主鍵 htm logs 主鍵的作用: 1)保證實體的完整性; 2)加快數據庫的操作速度 3)在表中添加新記錄時,數據庫會自動檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重復。 4) 數據庫自動按主鍵值的順序
Hibernate處理沒有主鍵的檢視
檢視的詳情 SELECT TEST_FLIGHT_TIME AS TESTTIME,JIHAO AS JIHAO,'1' AS