最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

hibernate屬性級別注解實例代碼

 更新時間:2017年10月19日 09:58:46   作者:黃小魚ZZZ  
這篇文章主要介紹了hibernate屬性級別注解實例代碼,涉及屬性級別注釋添加方式及種類,具有一定參考價值,需要的朋友可以了解下。

屬性級別注解

添加方式:

        寫在屬性字段上面
寫在屬性的get訪問器的上面

@Id

    必須,定義了映射到數(shù)據(jù)庫表的主鍵的屬性,一個實體類可以有一個或者多個屬性被映射為主鍵,可置于主鍵屬性或者getXxx()前,注意:如果有多個屬性定義為主鍵屬性,該實體類必須實現(xiàn)serializable接口

@SequenceGenerator
@GeneratedValue
  @GeneratedValue(strategy=GenerationType,generator=""):可選,用于定義主鍵生成策略

  strategy表示主鍵生成策略,取值有:

       GenerationType.AUTO:根據(jù)底層數(shù)據(jù)庫自動選擇(默認(rèn))
GenerationType.INDENTITY:根據(jù)數(shù)據(jù)庫的Identity字段生成
GenerationType.SEQUENCE:使用Sequence來決定主鍵的取值
GenerationType.TABLE:使用指定表來決定主鍵取值,結(jié)合@TableGenerator使用

@Column

     @Column-可將屬性映射到列,使用該注解來覆蓋默認(rèn)值,@Column描述了數(shù)據(jù)庫表中該字段的詳細(xì)定義,這對于根據(jù)JPA
注解生成數(shù)據(jù)庫表結(jié)構(gòu)的工具非常有作用。

常用屬性:

name:可選,表示數(shù)據(jù)庫表中該字段的名稱,默認(rèn)情形屬性名稱一致
nullable:可選,表示該字段是否允許為null,默認(rèn)為true
unique:可選,表示該字段是否為唯一標(biāo)識,默認(rèn)為false
length:可選,表示該字段的大小,僅對String類型的字段有效,默認(rèn)值225,主鍵不能使用默認(rèn)值
insertable:可選,表示在ORM框架執(zhí)行插入操作時,該字段是否應(yīng)出現(xiàn)INSERTRT語句中,默認(rèn)為true
updateable:可選,表示在ORM框架執(zhí)行更新操作時,該字段是否應(yīng)該出現(xiàn)在UPDATE語句中,默認(rèn)為true。對于已經(jīng)創(chuàng)建
就不可以更改的字段,該屬性非常有用

@Embedded

@Embedded是注釋屬性的,表示該屬性的類是嵌入類。

注意:同時嵌入類也必須標(biāo)注@Embeddable注解

@EmbeddedId

@EmbeddedId使用嵌入式主鍵類實現(xiàn)復(fù)合主鍵

注意:嵌入式主鍵類必須實現(xiàn)Serializable接口、必須有默認(rèn)的public無參數(shù)的構(gòu)造方法、必須覆蓋equals和hashCode方法

@Lob
@Version
@Basic
@Transient

      可選,表示該屬性并非一個到數(shù)據(jù)庫表的字段的映射,ORM框架將忽略該屬性,如果一個屬性并非數(shù)據(jù)庫表的字段映射,就
務(wù)必將其標(biāo)示為@Transient,否則ORM框架默認(rèn)其注解為@Basic

實例:

hibernate.properties配置:

<!DOCTYPE hibernate-configuration PUBLIC 
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
  "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
 
<hibernate-configuration> 
  <session-factory> 
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 
    <!--  
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql:///hibernate_struts_stumanager</property> 
     --> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mypage</property> 
     
     
    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password">root</property> 
    <property name="hibernate.show_sql">false</property> 
    <property name="hibernate.hbm2ddl.auto">create</property> 
  <!--   <property name="hibernate_current_session_context_class">thread</property> --> 
    <property name="current_session_context_class">thread</property> 
    <mapping class="com.entity.Students"/> 
  </session-factory> 
</hibernate-configuration> 

實體類Student:

package com.entity; 
import java.io.Serializable; 
import java.util.Date; 
import javax.persistence.Column; 
import javax.persistence.Embedded; 
import javax.persistence.EmbeddedId; 
import javax.persistence.Entity;//JPA注解 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
import javax.persistence.Transient; 
import org.hibernate.annotations.GenericGenerator; 
/* 
 * 學(xué)生實體類 
 */ 
//@Entity// 
//@Entity(name="t_students")//如果不添加名字,則默認(rèn)與實體類名字相同,如果想要自行設(shè)置表明,就需要自己進(jìn)行添加 
@Entity 
@Table(name="t_students1",schema="mypage") 
public class Students implements Serializable{ 
     @Id 
//    @GeneratedValue 
//    @GeneratedValue(strategy=GenerationType.AUTO)//與@GeneratedValue結(jié)果相同,字符串類型不能指定為AUTO類型 
//     private int sid; //學(xué)號 
//    @GeneratedValue(generator="sid") 
//    @GenericGenerator(name="sid",strategy="assigned") 
//    @Column(length=11) 
//    private String sid; 
     @EmbeddedId 
     private StudentPK pk; 
//    @Id 
//     
//    @Column(length=11) 
     private String sname;//姓名 
     private String gender;//性別 
     private Date birthday;//出生日期 
     private String major;//專業(yè) 
     private Address add; 
     @Transient   //表示該字段不會被ORM映射到表里的字段 
     private double salary;//薪水 
     public Students(){ 
     } 
    public Students(StudentPK pk, String sname, String gender, 
        Date date, String major,Address add,double salary) { 
//     super(); 
      this.pk = pk; 
      this.sname = sname; 
      this.gender = gender; 
      this.birthday = date; 
      this.major = major; 
      this.add = add; 
      this.salary = salary; 
    } 
    public StudentPK getPk() { 
      return pk; 
    } 
    public void setPk(StudentPK pk) { 
      this.pk = pk; 
    } 
    public String getSname() { 
      return sname; 
    } 
    public void setSname(String sname) { 
      this.sname = sname; 
    } 
    public String getGender() { 
      return gender; 
    } 
    public void setGender(String gender) { 
      this.gender = gender; 
    } 
    public Date getBirthday() { 
      return birthday; 
    } 
    public void setBirthday(Date birthday) { 
      this.birthday = birthday; 
    } 
    public String getMajor() { 
      return major; 
    } 
    public void setMajor(String major) { 
      this.major = major; 
    } 
    public Address getAdd() { 
      return add; 
    } 
    public void setAdd(Address add) { 
      this.add = add; 
    } 
    public double getSalary() { 
      return salary; 
    } 
    public void setSalary(double salary) { 
      this.salary = salary; 
    } 
      
} 

StudentPK實體類:

package com.entity; 
import java.io.Serializable; 
import javax.persistence.Column; 
import javax.persistence.Embeddable; 
@Embeddable 
public class StudentPK implements Serializable{ 
    /** 
   * 
   */ 
  private static final long serialVersionUID = 1L; 
  @Column(length=18) 
  private String id;//身份證號 
  @Column(length=8) 
    private String sid;//學(xué)號 
    public StudentPK(){ 
    } 
  public StudentPK(String id, String sid) { 
    this.id = id; 
    this.sid = sid; 
  } 
  public String getId() { 
    return id; 
  } 
  public void setId(String id) { 
    this.id = id; 
  } 
  public String getSid() { 
    return sid; 
  } 
  public void setSid(String sid) { 
    this.sid = sid; 
  } 
  @Override 
  public boolean equals(Object obj) { 
    // TODO Auto-generated method stub 
    return super.equals(obj); 
  } 
  @Override 
  public int hashCode() { 
    // TODO Auto-generated method stub 
    return super.hashCode(); 
  } 
} 

地址類:

package com.entity; 
import javax.persistence.Embeddable; 
import javax.persistence.Embedded; 
// 地址類 
@Embeddable //表示是一個嵌入類,這個類的對象在另一個實體類中充當(dāng)屬性  
public class Address { 
   private String postCode;//郵編 
   private String address;//地址 
   private String phone;//聯(lián)系電話 
   public Address(){ 
   } 
    
  public Address(String postCode, String address, String phone) { 
    this.postCode = postCode; 
    this.address = address; 
    this.phone = phone; 
  } 
 
  public String getPostCode() { 
    return postCode; 
  } 
  public void setPostCode(String postCode) { 
    this.postCode = postCode; 
  } 
  @Embedded 
  public String getAddress() { 
    return address; 
  } 
  public void setAddress(String address) { 
    this.address = address; 
  } 
  public String getPhone() { 
    return phone; 
  } 
  public void setPhone(String phone) { 
    this.phone = phone; 
  } 
    
} 

測試類:

package com.entity; 
 
import java.util.Date; 
import java.util.EnumSet; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 
import org.hibernate.tool.hbm2ddl.SchemaExport; 
import org.junit.Test; 
public class TestStudents { 
  @Test 
    public void testShemaExport(){ 
      //創(chuàng)建hibernate配置對象 
      Configuration config = new Configuration().configure(); 
      //創(chuàng)建服務(wù)注冊對象 
      ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); 
      //生成SessionFactory 
      SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); 
      SchemaExport export = new SchemaExport(config); 
      export.create(true,true); 
    } 
  @Test 
  public void addStudents(){ 
     //創(chuàng)建hibernate配置對象 
    Configuration config = new Configuration().configure(); 
    //創(chuàng)建服務(wù)注冊對象 
    ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); 
    //生成SessionFactory 
    SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); 
    //創(chuàng)建會話 
    Session session = sessionFactory.getCurrentSession(); 
    //創(chuàng)建事務(wù) 
    Transaction tx = session.beginTransaction(); 
    Address add = new Address("700005","河南理工大學(xué)","15039117115"); 
    StudentPK pk = new StudentPK("012345678912345678","55555555"); 
    Students s = new Students(pk,"張三豐","男",new Date(),"太極拳",add,7899); 
    session.save(s); 
    tx.commit(); 
//   SchemaExport export = new SchemaExport(config); 
//    export.create(true,true); 
  } 
} 

總結(jié)

以上就是本文關(guān)于hibernate屬性級別注解實例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Hibernate核心思想與接口簡介、Hibernate實現(xiàn)悲觀鎖和樂觀鎖代碼介紹、快速了解hibernate配置文件與映射文件等。正所謂書中自有顏如玉,下面附幾本不錯的書籍,供大家學(xué)習(xí)參考,在此也非常希望大家對本站多多支持。

一鍵下載,免費的哦:

hibernate官方入門教程 中文PDF版

http://www.fzitv.net/books/496598.html

Java設(shè)計模式深入研究 PDF

http://www.fzitv.net/books/581548.html

數(shù)據(jù)挖掘:實用機(jī)器學(xué)習(xí)技術(shù)及Java實現(xiàn)(英文第2版)高清PDF

http://www.fzitv.net/books/577815.html

相關(guān)文章

  • IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄

    IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟記錄

    這篇文章主要給大家介紹了關(guān)于IDEA2020.2.3中創(chuàng)建JavaWeb工程的完整步驟,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • java實現(xiàn)超大文件的讀寫功能

    java實現(xiàn)超大文件的讀寫功能

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)超大文件的讀寫功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Java中的ConcurrentHashMap集合源碼解析

    Java中的ConcurrentHashMap集合源碼解析

    這篇文章主要介紹了Java中的ConcurrentHashMap集合源碼解析,ConcurrentHashMap底層容器和HashMap相同,同樣是Node數(shù)組+鏈表+紅黑樹,不同的是在原來的基礎(chǔ)之上使用了Synchronized+CAS來保證線程安全,下面我們來進(jìn)行源碼分析,需要的朋友可以參考下
    2023-11-11
  • 基于Jenkins搭建.NET FrameWork持續(xù)集成環(huán)境

    基于Jenkins搭建.NET FrameWork持續(xù)集成環(huán)境

    這篇文章主要介紹了基于Jenkins搭建.NET FrameWork持續(xù)集成環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • JDK 7 新特性小結(jié)實例代碼解析

    JDK 7 新特性小結(jié)實例代碼解析

    這篇文章通過實例代碼給大家介紹了JDK 7 新特性小結(jié)篇,感興趣的朋友一起看看吧
    2018-03-03
  • Apache Dubbo的SPI機(jī)制是如何實現(xiàn)的

    Apache Dubbo的SPI機(jī)制是如何實現(xiàn)的

    SPI全稱為Service Provider Interface,對應(yīng)中文為服務(wù)發(fā)現(xiàn)機(jī)制。SPI類似一種可插拔機(jī)制,首先需要定義一個接口或一個約定,然后不同的場景可以對其進(jìn)行實現(xiàn),調(diào)用方在使用的時候無需過多關(guān)注具體的實現(xiàn)細(xì)節(jié)。在Java中,SPI體現(xiàn)了面向接口編程的思想,滿足開閉設(shè)計原則。
    2021-06-06
  • Java基礎(chǔ)教程之接口的繼承與抽象類

    Java基礎(chǔ)教程之接口的繼承與抽象類

    這篇文章主要介紹了Java基礎(chǔ)教程之接口的繼承與抽象類,本文介紹了接口繼承、接口的多重繼承以及抽象類的知識,需要的朋友可以參考下
    2014-09-09
  • 最新評論

    五家渠市| 中山市| 紫金县| 东乌珠穆沁旗| 嘉黎县| 镇坪县| 思茅市| 内丘县| 金沙县| 宜都市| 龙川县| 交口县| 留坝县| 惠州市| 安顺市| 海盐县| 崇信县| 喀什市| 咸阳市| 金门县| 塔城市| 富川| 墨玉县| 西和县| 桑日县| 忻城县| 临澧县| 疏附县| 金坛市| 江北区| 台南市| 大竹县| 高雄市| 凌海市| 松滋市| 嘉定区| 鹤壁市| 哈尔滨市| 石门县| 昭觉县| 保山市|