1. 程式人生 > >hibernate無主鍵對映

hibernate無主鍵對映

在hibernate中,表結構如果沒有主鍵的話,對映時是會把所有的欄位預設為類似的聯合主鍵形式,就到時候就會產生2個實體類,1個人實體ID,另外一個則為真正的資料欄位

在查詢時有可能會產生一些問題,

例如,空指標,獲取的list有長度,但是實際陣列卻為空

這是一個很惱火的問題.雖然仔細一回想就能想到是這原因。

所以最好是給表加主鍵,

我也聽到很多人討論過關於表結構這一塊,

個人認為能加主鍵儘量加,或者有個外來鍵、聯合主鍵之類的。

至於其他的約束,資料量少,那沒問題,

資料量1大,什麼外來鍵的都可以去掉,因為這對資料查詢來說,效率方面是一個很大的干擾.

資料量大不大,跟你的表多不多沒有直接的關係.

相關推薦

hibernate對映

在hibernate中,表結構如果沒有主鍵的話,對映時是會把所有的欄位預設為類似的聯合主鍵形式,就到時候就會產生2個實體類,1個人實體ID,另外一個則為真正的資料欄位 在查詢時有可能會產生一些問題, 例如,空指標,獲取的list有長度,但是實際陣列卻為空 這是一個很惱火的問題

Hibernate聯合對映

1.聯合主鍵的對映規則1) 類中的每個主鍵屬性都對應到資料表中的每個主鍵列。 Hibernate要求具有聯合主鍵的實體類實現Serializable介面,並且重寫hashCode與equals方法,重寫這兩個方法的原因在於Hibernate要根據資料庫的聯合主鍵來判斷某兩行

使用MyEclipse自動生成Hibernate對映檔案和VO類及生成2個VO類的問題

----使用MyEclipse自動生成Hibernate對映檔案和VO類及無主鍵生成2個VO類的問題 ----MyEclipse 10 1.切換MyEclipse Database Explorer環境,new一個Driver,以Oracle資料庫舉例,在完善資訊並引入j

hibernate 對映的資料庫表

做東西發現數據庫查出來的資料是重複資料,如果有3條記錄就重複第一條記錄3次,後來發現是表無主鍵,且hibernate對映檔案必須有id屬性,搜了搜發現要使用符合主鍵的方法.................以下轉載自一個帖子裡內容: MyEclipse自動生成的那個貌似比

Hibernate基於的單項,雙向多對多對映關係

今天我們來一起談論下hibernate的基於主鍵的單項,雙向多對多對映關係 首先多對多都是基於主鍵的,沒有基於外來鍵的說法 1.基於主鍵的單項多對多 在這裡就是說中間stuobject是一張關係表,將兩張表的主鍵進行關聯,形成了多對多的關係 程式碼如

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

Hibernate之複合對映

一,概述 複合主鍵也是開發中經常遇到的需求,這篇部落格就是關於複合主鍵對映,開始吧! 二,實體類準備 1)複合主鍵類 package com.bighuan.d_compositeKey; import java.io.Serializable; /** * 複合主

Hibernate中多屬性構成複合對映

目錄: 1. 實現方式一:將複合主鍵對應的屬性與實體其他普通屬性放在一起 2. 實現方式二:將主鍵屬性提取到一個主鍵類中,實體類只需包含主鍵類的一個引用 在日常開發中會遇到這樣一種情況,資料庫中的某張表需要多個欄位列才能唯一確定一行記錄,這時表需要使用複合主鍵。面

Hibernate生成策略小總結

rem 時間值 多線程 class 判斷 acl 選擇 hiberna bsp 主鍵生成策略大致分兩種: 手工控制策略 自動生成策略【框架自動生成和數據庫自動生成】 手工控制策略: assigned:類型是任意的,需要在 save() 到數據庫前,編碼人員手工設置主鍵

hibernate 聯合

blog package site http Coding logs override ide pac xml配置 需要一個主鍵類: package com.bxw.entity; import java.io.Serializable; public class

--oracle刪除數據庫表()中重復的記錄

數據庫 create 數據庫表 new 刪除 distinct 主鍵 alter bsp --oracle刪除數據庫表(無主鍵)中重復的記錄 1, CREATE TABLE newtable as SELECT distinct * FROM

Hibernate各種生成策略與配置詳解

文檔 最簡 重啟 如果 自定義 早期 出錯 lsp 當地時間 1、assigned 主鍵由外部程序負責生成,在 save() 之前必須指定一個。Hibernate不負責維護主鍵生成。與Hibernate和底層數據庫都無關,可以跨數據庫。在存儲對象前,必須要使用主鍵的sett

Hibernate 組合的使用

div too pri code onetoone vat embedded ble clas 使用@Embeddable註解,組合鍵的類必須實現 Serializable 接口 @Data @Embeddable public class UserCommentId i

binlog_format=ROW模式下mysql表造成的從庫延遲(卡住)

osi 一個 線程 查詢日誌 事務 發現 沒有 主從架構 應該 場景: MySQL-5.6.30, 主從架構, 只讀從庫的SQL線程卡在某一個事務兩個多小時沒有動過, show processlist發現從庫當時沒有連接和慢查詢語句;show open TABLES wh

hibernate 聯合出現MySQLIntegrityConstraintViolationException錯誤

問題 今天在使用SSH框架做一個專案中的級聯插入時,報一個錯誤(root error,其他錯誤很多,不過都是因為這個引起)“com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationExce

MyBatis的學習(五)——關聯對映對映

一、主鍵對映的作用 當資料插入操作不關心插入後資料的主鍵(唯一標識),那麼建議使用 不返回自增主鍵值 的方式來配置插入語句,這樣可以避免額外的SQL開銷. 當執行插入操作後需要立即獲取插入的自增主鍵值,比如一次操作中儲存一對多這種關係的資料,那麼就要使用插入後獲取自增主鍵值的方式配置.

hibernate生成器以及 hibernateutil工具類

一. hibernate的主鍵生成器: generator元素:表示了一個主鍵生成器,它用來為持久化類例項生成唯一的標識 。 1.1 程式設計師自己控制:assigned 資料型別不限、儲存前必須賦值 1.2 資料庫控制: mysql:identity(

hibernate生成器

主鍵生成器要求 identity 適用於代理主鍵. 由底層資料庫生成識別符號. 前提條件是底層資料庫支援自動增長欄位型別. (Oracle資料庫不能用它) increment 適用於代理主鍵. 由Hibernate自動以遞增的方式生成識別符號. 每次增加1.

hibernate生成及可能出現的錯誤

重點: 1、hibernateutil工具類 2、程式設計師自己控制:assigned 3、資料庫控制: identity(標識列/自動增長) sequence 4、hibernate控制:increment uuid/uuid.hex 5、其它native 6