1. 程式人生 > >hibernate註解詳解

hibernate註解詳解

基本註解

宣告實體Bean 
    @Entity <span style="font-family: Arial;">  </span>   publicclass Flight implements Serializable {       Long id;       @Id   public Long getId() { return id; }       publicvoid setId(Long id) { this.id = id; }     }    

@Entity

@Entity 註解將一個類宣告為實體 Bean, @Id 註解聲明瞭該實體Bean的標識屬性。 
Hibernate 可以對類的屬性或者方法進行註解。屬性對應field類別,方法的 getXxx()對應property類別。  定義表  通過 @Table 為實體Bean指定對應資料庫表,目錄和schema的名字。 
    @Entity @Table(name="tbl_sky")     publicclass Sky implements Serializable {     @Table 註解包含一個schema和一個catelog 屬性,使用@UniqueConstraints 可以定義表的唯一約束。     @Table
    (name="tbl_sky",    
      uniqueConstraints = {@UniqueConstraint(columnNames={"month""day"})}     )    

上述程式碼在  "month" 和 "day" 兩個 field 上加上 unique constrainst.

@Version 

@Version 註解用於支援樂觀鎖版本控制。 
    @Entity publicclass Flight implements Serializable {        ...    
       @Version    @Column(name="OPTLOCK")        public Integer getVersion() { ... }     }    

version屬性對映到 "OPTLOCK" 列,entity manager 使用這個欄位來檢測衝突。 一般可以用 數字 或者 timestamp 型別來支援 version.  實體Bean中所有非static 非 transient 屬性都可以被持久化,除非用@Transient註解。  預設情況下,所有屬性都用 @Basic 註解。 
    publictransientint counter; //transient property   private String firstname; //persistent property   @Transient String getLengthInMeter() { ... } //transient property   String getName() {... } // persistent property   @Basic int getLength() { ... } // persistent property   @Basic(fetch = FetchType.LAZY)     String getDetailedComment() { ... } // persistent property   @Temporal(TemporalType.TIME)     java.util.Date getDepartureTime() { ... } // persistent property   @Enumerated(EnumType.STRING)     Starred getNote() { ... } //enum persisted as String in database  
上述程式碼中 counter, lengthInMeter 屬性將忽略不被持久化,而 firstname, name, length 被定義為可持久化和可獲取的。

@TemporalType 

@TemporalType.(DATE,TIME,TIMESTAMP) 分別Map java.sql.(Date, Time, Timestamp).

@Lob 

@Lob 註解屬性將被持久化為 Blog 或 Clob 型別。具體的java.sql.Clob, Character[], char[] 和 java.lang.String 將被持久化為 Clob 型別. java.sql.Blob, Byte[], byte[] 和 serializable type 將被持久化為 Blob 型別。 
    @Lob public String getFullText() {        return fullText;  // clob type   }     @Lob publicbyte[] getFullCode() {       return fullCode;  // blog type   }    

如果定義Blob 或者 Clob有報錯java.lang.UnsupportedOperationException: Clobs are not cacheable可參考以下連結 http://blog.csdn.net/kongjiea/article/details/51015076

 @Column

@Column 註解將屬性對映到列。 
    @Entity publicclass Flight implements Serializable {        ...        @Column(updatable = false, name = "flight_name", nullable = false, length=50)        public String getName() { ... }    
定義 name 屬性對映到 flight_name column, not null, can't update, length equal 50 
    @Column(        name="columnName"; (1) 列名        boolean unique() defaultfalse; (2)    是否在該列上設定唯一約束        boolean nullable() defaulttrue; (3)   列可空?        boolean insertable() defaulttrue; (4) 該列是否作為生成 insert語句的一個列        boolean updatable() defaulttrue; (5)  該列是否作為生成 update語句的一個列        String columnDefinition() default""; (6)  預設值        String table() default""; (7)             定義對應的表(deault 是主表)        int length() default255; (8)              列長度        int precision() default0// decimal precision (9)  decimal精度      int scale() default0// decimal scale        (10)  decimal長度  

@Embeddable

嵌入式物件(又稱元件)也就是別的物件定義的屬性  元件類必須在類一級定義 @Embeddable 註解。在特定的實體關聯屬性上使用 @Embeddable 和 @AttributeOverride 註解可以覆蓋該屬性對應的嵌入式物件的列對映。 
    @Entity publicclass Person implements Serializable {        // Persistent component using defaults      Address homeAddress;        @Embedded    @AttributeOverrides( {           @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),           @AttributeOverride(name="name", column = @Column(name="bornCountryName") )        } )        Country bornIn;        ...     }     @Embeddable publicclass Address implements Serializable {        String city;        Country nationality; //no overriding here   }     @Embeddable publicclass Country implements Serializable {        private String iso2;    

    相關推薦

    hibernate註解

    基本註解 宣告實體Bean  @Entity <span style="font-family: Arial;">  </span>   publicclass Flight implements Serializ

    spring+hibernate實體類註解(非原創) + cascade屬性取值

    //User實體表示使用者,Book實體表示書籍,為了描述使用者收藏的書籍,可以在User和Book之間建立ManyToMany關聯 @Entity public class User { private List books; @ManyToMany(ta

    Hibernate API

    begin 連接 package 關閉 intra 建議 import 習慣 gin hibernate體系結構 PO:persistent Object 持久對象,javabean+hbm.xml,習慣稱呼為PO類 Configuration Configuratio

    (轉)@RequestParam @RequestBody @PathVariable 等參數綁定註解

    erro 後綁定 false zip ons type() eba veh manager 引言: 接上一篇文章,對@RequestMapping進行地址映射講解之後,該篇主要講解request 數據到handler method 參數數據的綁定所用到的註解和什麽情形下使用

    Spring中@Component註解,@Controller註解(網摘)

    tin ava 代碼 autowired reat control type imp 訪問   在使用Spring的過程中,為了避免大量使用Bean註入的Xml配置文件,我們會采用Spring提供的自動掃描註入的方式, 只需要添加幾行自動註入的的配置,便可以完成Servic

    @Qualifier註解

    num fine ali factor BE comm alt nta expec @Qualifier註解意味著可以在被標註bean的字段上可以自動裝配。Qualifier註解可以用來取消Spring不能取消的bean應用。 下面的示例將會在Customer的person

    springboot的註解

    ica prope pan span 配置 作用 cat fix 文件中 配置類相關: @PropertySource(value = "classpath:test.properties") //我們都把配置文件寫到application.yml中。有時我們不願意把

    Sping框架中的註解

    例子 上下 troy getbean 用戶id 查找 oge 數據庫 配置 傳統的Spring做法是使用.xml文件來對bean進行註入或者是配置aop、事物,這麽做有兩個缺點:1、如果所有的內容都配置在.xml文件中,那麽.xml文件將會十分龐大;如果按需求分開.xml文

    (四)Hibernate API

    delet hibernate load 類型變量 nbsp ria 每次 transacti llb 一、Configuration類 用來加載默認文件路徑下的配置文件(hibernate.properties)。 調用configure()方法會加載默認文件路徑下的xm

    Spring MVC @RequestMapping註解(2)

    並不是 value get ecif 使用 .com java代碼 處理方法 分開 @RequestMapping 參數說明   value:定義處理方法的請求的 URL 地址。(重點)   method:定義處理方法的 http method 類型,如 GET、POST

    Hibernate Session

    Session介面是hibernate中的核心介面,它不是javaweb應用中的HttpSession介面 Session概述  Session介面是Hibernate嚮應用程式提供的操縱資料庫的主要介面,它提供了實現基本的儲存、更新、刪除和載入java物件的方法Session快取

    JPA註解及示例

    文章出處:https://blog.csdn.net/zhengchao1991/article/details/70236919 1、用例項介紹JPA 使用JPA,肯定是有ORM的意思在裡面,當然我們首先要定義一個實體類(要將 Java 類指定為 JPA 實體,請使用 @Entity 批註

    @GeneratedValue 註解

    springboot中@GeneratedValue作用: (1)、@GeneratedValue註解存在的意義主要就是為一個實體生成一個唯一標識的主鍵、@GeneratedValue提供了主鍵的生成策略。 (2)、@GeneratedValue註解有兩個屬性,分別是strategy和g

    @Table 註解

    spring @Table註解  作用是 : 宣告此物件對映到資料庫的資料表,通過它可以為實體指定表(talbe) 常用的兩個屬性:  1、name 用來命名 當前實體類 對應的資料庫 表的名字  @Table(name = "tab_u

    SwaggerAPI註解,以及註解常用引數配置

    官網github地址:https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X 註解 @Api: 作用在類上,用來標註該類具體實現內容。表示標識這個類是swagger的資源 。  引數:  1

    Java 註解

    一、什麼是註解 註解也叫元資料,例如我們常見的@Override和@Deprecated,註解是JDK1.5版本開始引入的一個特性,用於對程式碼進行說明,可以對包、類、介面、欄位、方法引數、區域性變數等進行註解 註解都預設繼承介面Annotation.jav

    java元註解

    java中元註解有四個: @Retention @Target @Document @Inherited;    @Retention:註解的保留位置                @Retention(RetentionPolicy.SOURCE)   //註解僅

    Java——註解

    Java註解同 classs 和 interface 一樣,註解也屬於一種型別。它是在 Java SE 5.0 版本中開始引入的概念。 註解的定義 通過 @interface 關鍵字進行定義。 public @interface TestAnnotation { } 這段程式碼就建立了一個名字為 Tes

    Java註解

    一、介紹 1 概念 註解(Annotation),也叫元資料。一種程式碼級別的說明。它是Java 5新增的技術。要區別註釋,註解是程式碼裡的一種特殊標記,可在編譯前、編譯後、執行時等不同的時期被讀取,並作出相應的處理。 2 原則 由於註解的程式碼是附屬資訊,它

    最全Spring常用註解

    我們在開發的時候,會看到各種的註解,如果不細細研究下,傻傻的分不清楚,更談不上怎麼合理的利用了,接下來我們一起看下。 研究順序,從最常用的來,follow me [email protected]註解 用於標註控制層元件(如struts中的action)。如果@Controller不指