1. 程式人生 > >hibernate註解方式(類級別和屬性級別)

hibernate註解方式(類級別和屬性級別)

使用註解方式就是為了簡化繁瑣的ORM對映檔案的(*.hbm)檔案的配置

JPA和Hibernate的關係:JPA是標準介面,Hibernate是實現,但是其功能是JPA的超集

hibernate通過hibernate-annotation、hibern-entitymanager、hibernate-core三個組建來實現

JPA註解有利於程式的移植和擴充套件,優先使用。

hibernate註解分類:

一、類級別的註解

[email protected]ty 表示實體類,一個實體類應該對應資料庫裡面的一張表

   @Entity(name="tableName") 

   要有主鍵,用@Id


[email protected](name="",catalog="",schema="")

@Entity配合使用,只能標註在實體的class定義處,表示實體對應的資料庫表的資訊

[email protected]表示嵌入類,充當一個屬性類

二、屬性級別的註解

1.@Id:必須,定義了對映到資料庫表的主鍵的屬性,一個實體類可以有一個或者多個屬性被對映為主鍵,可置於主鍵屬性或者getXxxx()前

如果!有多個屬性定義為主鍵屬性,該實體類就必須實現serializable介面,這個介面是宣告化介面,它不需要實現任何方法

Q如果設定的主鍵是字串型別,對於MySQL來說長度是不能過長的,但是如果你沒有設定長度,它預設建表的時候會取255,所以,沒有設定長度就是創表失敗。

A在ID下面加@Column(length=10)

[email protected]

[email protected]GeneratedValue(strategy=GenerationTyper,generator=" ")

strategy表示主鍵生存策略:

GenerationTyper.AUTO 主鍵由程式自動控制(也是預設的,在指定主鍵時,如果不指定主鍵生成策略,預設為AUTO)要求主鍵是INT型別

GenerationTyper.INDENTITY主鍵由資料庫自動生成(主要是自動增長型)

GenerationTyper.SEQUENCE根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。


GenerationTyper.TABLE使用一個特定的資料庫表格來儲存主鍵。

當主鍵為字串型別

@GeneratedValue(generator="sid")

@GenericGenerator(name="sid",strategy="assigned")

[email protected]Column

@Column-可將屬性對映到列,使用該註解來覆蓋預設值,@Column描述了資料庫表中該欄位的詳細定義,這對於根據JPA註解生成資料庫表結構的工具非常有作用。

[email protected]Embedded

@Embedded是註釋屬性的,表示該屬性的類是嵌入類。
注意:同時嵌入類也必須標註@Embeddable註解

[email protected]EmbeddedId

@EmbeddedId使用嵌入式主鍵類實現複合主鍵
注意:嵌入式主鍵類必須實現Serializable介面、必須有預設的public無引數的構造方法、必須覆蓋equals和hashCode方法

[email protected]

[email protected]

[email protected]

[email protected]Transient

可選,表示該屬性並非一個到資料庫表的欄位的對映,ORM框架將忽略該屬性,如果一個屬性並非資料庫表的欄位對映,就務必將其標示為@Transient,否則ORM框架預設其註解為@Basic

三、對映關係的註解

見下篇

相關推薦

hibernate註解方式級別屬性級別

使用註解方式就是為了簡化繁瑣的ORM對映檔案的(*.hbm)檔案的配置 JPA和Hibernate的關係:JPA是標準介面,Hibernate是實現,但是其功能是JPA的超集 hibernate通過h

C#學習筆記第一發---C#基礎基礎語法

問號 key 循環 自動 其中 clas tlist 不存在 邏輯運算 首先,數據類型分為值類型和引用數據類型以及指針類型(暫不涉及):值類型是指直接儲存在內存的棧上面,引用類型則在棧上儲存一個引用,在堆上儲存具體的值。 值類型分為內建類型和用戶可以自定義的struct

java讀取檔案寫入檔案的方式位元組流字元流

java讀取檔案和寫入檔案的方式 以位元組為單位讀取檔案 一次讀一個位元組 一次讀多個位元組 以字元為單位讀取檔案 一次讀一個字元 一次讀多個字元 以位元組為單位讀取檔案 以位元

用EF的三種方式SqlServer資料庫Oracle資料庫

SqlServer資料庫 1.DB First 現有DB,生成edmx檔案 貼一下生成的model //------------------------------------------------------------------------------ // <auto-generated&g

全排列的不同方式遞迴STL演算法

#include<iostream> #include<cstdlib> #include<algorithm> #include<iomanip> #include<functional> #include<iterator>

LinuxCentOS安裝Node.JSnpm的兩種方式yum安裝原始碼安裝

宣告版本: Linux版本:CentOS release 6.9 / 64位 yum安裝 yum安裝是將yum源中的rpm包下載到本地,安裝這個rpm包。這個rpm包是別人編譯安裝好的二進位制包。這種方式方便快捷,特別是不用考慮包依賴。 0、

python程式設計變數例項變數

【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】     關於類變數和例項變數,一直不是很清楚。所以,想做幾個實驗,徹底解決這個問題。為此,我們設計了三個實驗。 1、直接引用類變數 import

spark 提交任務方式spark-yarnspark-client

yarn-cluster和yarn-client方式的區別: yarn-cluster的ApplicationMaster在任一一臺NodeManager上啟動,申請啟動的Executor反向註冊到AM所在的NodeManager, 而yarn-client

Spring 使用註解方式實現IOCDI控制反轉依賴注入

Spring 使用註解的方式實現IOC和DI 註解的方式實現IOC&DI     1、IOC操作       1)@Component  :用於實現ioc控制反轉,屬性value用於實現物件

Linux 程序設計學習筆記----Linux下文件屬性管理

腳本 types.h 沒有 oot 創建 jsb 文件 屬性 文件大小 轉載請註明出處:http://blog.csdn.net/suool/article/details/38318225 部分內容整理自網絡,在此感謝各位大神。 Linux文件類型和權限 數據表示

Hibernate查詢方式

sof qbc nbsp ros ron 客戶 多對多 它的 記錄 -----------------siwuxie095 Hibernate 查詢方式 1、對象導航查詢 根據已經加載的對象,導航到它的

Python的程序結構(2) -> 方法/Method -> 靜態方法、方法屬性方法

程序 屬性的方法 屬性方法 cls ati instance 而在 gpo int 靜態方法、類方法和屬性方法 在 Python 中有三種常用的方法裝飾器(參考裝飾器部分內容),可以使普通的類實例方法變成帶有特殊功能的方法,分別是靜態方法、類方法和屬性方法。 靜態方

hibernate 註解方式講解映射關系

在外 entity 方便 log 建設 中間 建表 遺憾 存在 註解方式講解映射關系 1 One-To-One Unidirectional with Foreign Key 單向關聯外鍵方式。 1.1 關系如下

Java 系列之spring學習--springmvc註解方式

internal fault .org blank port imp handle scan html 一、springmvc註解方式   註解方式使用的更多,更加靈活。在上一篇的博客的基礎上修改springmvc-servlet.xml配置文件。 <?xml ve

java型轉換詳解自動轉換強制轉換

代碼 oid 高精 log 相加 println 類型轉換詳解 範圍 void 自動轉換 class Hello { public static void main(String[] args) { //自動轉換 int a = 5; byte b = 6

spring AOP 編程--AspectJ註解方式 4

clas 自定義 gin frame 接口 lan nts 包名 行為 1. AOP 簡介 AOP(Aspect-Oriented Programming, 面向切面編程): 是一種新的方法論, 是對傳統 OOP(Object-Oriented Programming,

python的對象的靜態字段

字典 可能 qbit fit pkg 繼承 方式 con sel 轉自:http://www.cnblogs.com/Eva-J/p/5044411.html 什麽是靜態字段   在開始之前,先上圖,解釋一下什麽是類的靜態字段(我有的時候會叫它類的靜態變量,總之說的都是

08有關設計實現的問題的結構關系

怎麽 包含 let 層次 維護 大量 raw int() 模式 一. 類內部的設計和實現 ? 給類定義合理的接口,對於創建高質量程序起到了關鍵作用。然而,類內部的設計和實現也同樣重要。這裏主要論述關於包含、繼承、成員函數和數據成員、類之間的耦合性、構造函數、值對象與引用對象

各個 C# 版本的主要特性、釋出日期釋出方式C# 1.0 - 7.3

原文 各個 C# 版本的主要特性、釋出日期和釋出方式(C# 1.0 - 7.3) 本文收集各個 C# 版本的主要特性、釋出日期和釋出方式。 C# 8.0 尚在預覽版本 C# 7.3 2018 年 5 月 隨 Visual Studio 2017 v15.7 釋出 C#

Linux學習筆記之1——檔案目錄管理硬連線軟連線(連結檔,相當於快捷方式

在這節將要學習linux的連線檔,在之前用"ls -l" 檢視檔案屬性的命令時, 其中第二個屬性是連線數。那麼這個連線數是幹什麼的?這就要理解inode。     先說一下檔案是怎麼儲存的。檔案儲存在硬碟上,硬碟的最小儲存單位叫做"扇區"(Sector),每個扇區儲存512位元