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]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]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>
Linux(CentOS)安裝Node.JS和npm的兩種方式(yum安裝和原始碼安裝)
宣告版本: Linux版本:CentOS release 6.9 / 64位 yum安裝 yum安裝是將yum源中的rpm包下載到本地,安裝這個rpm包。這個rpm包是別人編譯安裝好的二進位制包。這種方式方便快捷,特別是不用考慮包依賴。 0、
python程式設計(類變數和例項變數)
【 宣告:版權所有,歡迎轉載,請勿用於商業用途。 聯絡信箱:feixiaoxing @163.com】 關於類變數和例項變數,一直不是很清楚。所以,想做幾個實驗,徹底解決這個問題。為此,我們設計了三個實驗。 1、直接引用類變數 import
spark 提交任務方式(spark-yarn和spark-client)
yarn-cluster和yarn-client方式的區別: yarn-cluster的ApplicationMaster在任一一臺NodeManager上啟動,申請啟動的Executor反向註冊到AM所在的NodeManager, 而yarn-client
Spring 使用註解的方式實現IOC和DI(控制反轉和依賴注入)
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位元