1. 程式人生 > >Hibernate註解方式對映

Hibernate註解方式對映

JPA:Java persistence API

JPA註解是JavaEE的標準和規範

JPA是標準介面,Hibernate是實現,優先使用JPA註解。

一:類級別註解

1:@Entity對映實體類

name屬性對應資料庫中的表(一般不寫通過@Table寫)

注意:使用@Entity時必須制定實體類的主鍵屬性。

2:@Table對映實體類在資料庫中的表

name屬性(name=“表名”)表明和實體類名相同時不用寫。

3:@Embeddable

表示並非實體類(Entity),不會對映一張表,可以嵌入到另一個實體類(Entity)中作為屬性存在。

二:屬性級別註解

 1:@Id必須的

定義了對映到資料庫表中的主鍵屬性(一個或多個)

注意:多個主鍵屬性的實體類必須實現serializable介面。

2:@GeneratedValue(strategy=   ,generator=    )

定義主鍵生成策略

strategy主鍵生成策略,取值有:1)GenerationType.AUTO(根據底層資料庫自動選擇,預設值)

                                                   2)GenerationType.IDENTITY(根據資料庫中的Identity欄位生成)

                                                   3)GenerationType.SEQUENCE(使用序列來決定,Oracle和DB2支援但無自動增長型別)

注意:主鍵為String時,要手動新增主鍵,不能用JPA的主鍵生成策略,要通過generator來指定主鍵生成器,如:

@GeneratedValue(generator= “名”   )

@GenericGenerator(name=“名”,strategy=“assigned”)

3:@Column可將屬性對映到列

常用屬性:name資料庫中欄位的名、nullable能否為空、unique該欄位是否唯一標識(預設為false)、length長度、

                insertable該欄位是否出現在insert語句中,預設true

                updateable...............................update..............................(可設定一些屬性一經填寫就不能修改,設為false)

4:一對一單項外來鍵

@OneToOne(cascade=CascadeType.ALL)

@JoinColumn(name=“外來鍵”,unique=“true”)

(有外來鍵的一般作為主控方)

注意:儲存的時候要先儲存外來鍵物件,再儲存主表物件

5:一對一雙向外來鍵

被控方

@OneToOne(mappedBy=“主控方持有的北控方的例項化物件”)

交給對方來控制

6:多對一

一般多方作為主控方

多方@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)積極地抓取策略

        @JoinColumn(name=“外來鍵”,referencedColumnName=“這個外來鍵在資料庫中的名”)

一方基本上差不多不過可以把fetch的值改為LAZY

雙向的話:多方不變,一方可以簡寫@OneToMany(mappedBy=“對方持有的我方的例項化物件”)

注意:寫簡寫時要保證多方的已經進行了對映,雙方不能都是簡寫。

7:多對多

其中一方(主控方):@ManyToMany

                                   @JoinTable(

                                            name=“關聯表”

                                            [email protected](name=“關聯表中指向自己的外來鍵”)

                                            [email protected](name=“關聯表中指向對方的外來鍵”)

                                     )

被控方:(簡寫)@ManyToMany(mappedBy=“對方持有的我放的例項化物件”)

相關推薦

Hibernate註解方式對映

JPA:Java persistence APIJPA註解是JavaEE的標準和規範JPA是標準介面,Hibernate是實現,優先使用JPA註解。一:類級別註解1:@Entity對映實體類name屬性對應資料庫中的表(一般不寫通過@Table寫)注意:使用@Entity時必

hibernate 註解方式配置實體的對映

Hibernate註解1。@Entity(name="EntityName")必須,name為可選,對應資料庫中一的個表2、@Table(name="",catalog="",schema="")可選,通常和@Entity配合使用,只能標註在實體的class定義處,表示實體

hibernate 註解方式講解映射關系

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

Spring 整合 Hibernate 註解方式

在上一篇文章中,我們建立一個簡單的Maven專案結構,並展示如何使用 Spring 和 Hibernate 框架在 MySQL資料庫進行資料處理工作(插入,選擇,更新和刪除)。在本文章中,還是學習如何使用 Spring 和 Hibernate 做同樣的事情,這一次我們使用註解

[Hibernate]註解/關係對映以及關係測試用例

基本註解package OneToOneSingle; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; impor

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

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

hibernate註解方式

(A) 配置hibernate日誌  1、 為防止衝突,先將slf4j-nop的jar包(它也是slf的一個例項)去除  2、 加入log4j的jar包 commons-logging-1.1.1.jar,log4j-1.2.14.jar。  3、 加入轉換包 slf4j

Hibernate註解對映聯合主鍵的三種主要方式

聯合主鍵用Hibernate註解對映方式主要有三種: 第一、將聯合主鍵的欄位單獨放在一個類中,該類需要實現java.io.Serializable介面並重寫equals和hascode,再將該類註解為@Embeddable,最後在主類中(該類不包含聯合主鍵類中的欄位)儲存

Hibernate基於註解方式的各種對映全面總結

1. 使用HibernateAnnotation來做物件關係對映  1) 新增必須包:     hibernate-jpa-2.0-api-1.0.0.Final.jar  2)在實體類中新增JPA的標準註解來進行物件關係對映.註解可以新增在屬性上,也可以新增在getXxx

Hibernate學習】 —— 抓取策略(註解方式)

屬性的方法 ould per hql 項目 操作記錄 新建 應用程序 span 當應用程序須要在關聯關系間進行導航的時候。hibernate怎樣獲取關聯對象的策略。 抓取策略的方式: FetchType.LAZY:懶載入。載入一個實體時。定

2.2、Hibernate註解方式實現一對多、多對多關系

tab 技術部 employee join incr 無法運行 hset strategy urn 一、一對多關系   1、在上一篇日誌中用.xml配置文件項目基礎上,再往lib目錄先添加一個包-hibernate-jpa-2.0-api-1.0.0.Final.jar  

Atitit hibernste5 註解方式開發總結 目錄 1. 映入hb5的jar 建立專案 1 1.1. 建表tab1 ,這裡使用了sqlite資料庫 1 1.2. 建立對映實體類tab1

Atitit hibernste5  註解方式開發總結     目錄 1. 映入hb5的jar 建立專案 1 1.1. 建表tab1  ,這裡使用了sqlite資料庫 1 1.2. 建立對映實體類tab1  

SpringMVC框架(1)之(1.2 入門程式—處理器對映器和處理器介面卡(註解方式))

1.DispatcherServlet載入時會預設載入 DispatcherServlet.properties 檔案,目的是為了載入裡面的處理器對映器、處理器介面卡、檢視解析器等各個元件;(所以 springmvc.xml 中 兩種處理器介面卡、兩種處理器介面卡、檢視解析器都可以省略;)

Hibernate 註解方式進行查詢

Student 類 @Entity @NamedQueries(value={ **@NamedQuery**(name="first",query="from Student"), **@NamedQuery**(name

hibernate物件關係對映-註解

1.OneToOne關係對映 OneToOne即一對一對映,簡單來說就是一個主表student和一個從表stucreditcard,B表中存在一個外來鍵關聯到student表,這種關聯關係既可以以外來鍵的方式建立也可以是人工維護的關聯關係。 單向一對一關聯(不包括主鍵關聯

Hibernate 註解對映

工作中遇到hibernate對映的一些問題,這裡總結一下 (特別是測試時,許多資料並不能有效關聯。所以@NotFound 很重要) 一,假設有2張表user,company 我們知道,一個使用者屬於一個公司。那麼我們這麼建立Model //使用者 public class Use

Hibernate一對一關聯對映(註解)

hibernate一對一關聯對映有兩種方式,一種是基於外來鍵方式(常用),一種是基於主鍵方式 一、首先我們來看基於外來鍵一對一關聯對映: 1.資料表關聯對映圖 基於外來鍵的一對一關聯對映,維護端(有外來鍵方)可以維護雙方關聯,對雙

Hibernate該使用註解方式還是xml方式

XML配置方式:  優:容易編輯,配置比較集中,方便修改,在大業務量的系統裡面,通過xml配置會方便後人理解整個系統的架構,修改之後直接重啟應用即可  缺:比較繁瑣,配置形態醜陋, 配置檔案過多的時候難以管理  註解方式:  優:方便,簡潔,配置資訊和 Java 程式碼放在一

Hibernate註解對映欄位的位置到底應該放在屬性還是方法上

現在我們對於專案中大量使用@Entity註冊在類頭上,將一個類宣告為一個實體bean(即一個持久化POJO類) ,@Table註冊在類頭上,註解聲明瞭該實體bean對映指定的表,來體現實體與表的這種對映關係。 對於屬性欄位和表的欄位關係對應的註解屬性的位置,一般我們採用以下兩種方式: 第一種:

Hibernate 和 JPA 註解方式自定義ID生成器

/** * Test.java * 實體類定義和配置 */ package com.saving.ecm.resource.entity; import javax.persistence.Column; import javax.persistence.Enti