亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

hibernate屬性級別注解實例代碼

2024-07-13 10:13:16
字體:
來源:轉載
供稿:網友

屬性級別注解

添加方式:

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

@Id

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

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

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

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

@Column

     @Column-可將屬性映射到列,使用該注解來覆蓋默認值,@Column描述了數據庫表中該字段的詳細定義,這對于根據JPA
注解生成數據庫表結構的工具非常有作用。

常用屬性:

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

@Embedded

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

注意:同時嵌入類也必須標注@Embeddable注解

@EmbeddedId

@EmbeddedId使用嵌入式主鍵類實現復合主鍵

注意:嵌入式主鍵類必須實現Serializable接口、必須有默認的public無參數的構造方法、必須覆蓋equals和hashCode方法

@Lob
@Version
@Basic
@Transient

      可選,表示該屬性并非一個到數據庫表的字段的映射,ORM框架將忽略該屬性,如果一個屬性并非數據庫表的字段映射,就
務必將其標示為@Transient,否則ORM框架默認其注解為@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; /*  * 學生實體類  */ //@Entity// //@Entity(name="t_students")//如果不添加名字,則默認與實體類名字相同,如果想要自行設置表明,就需要自己進行添加 @Entity @Table(name="t_students1",schema="mypage") public class Students implements Serializable{      @Id //    @GeneratedValue //    @GeneratedValue(strategy=GenerationType.AUTO)//與@GeneratedValue結果相同,字符串類型不能指定為AUTO類型 //     private int sid; //學號 //    @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;//專業      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;//學號     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 //表示是一個嵌入類,這個類的對象在另一個實體類中充當屬性  public class Address {    private String postCode;//郵編    private String address;//地址    private String phone;//聯系電話    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(){       //創建hibernate配置對象       Configuration config = new Configuration().configure();       //創建服務注冊對象       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(){      //創建hibernate配置對象     Configuration config = new Configuration().configure();     //創建服務注冊對象     ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();     //生成SessionFactory     SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);     //創建會話     Session session = sessionFactory.getCurrentSession();     //創建事務     Transaction tx = session.beginTransaction();     Address add = new Address("700005","河南理工大學","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);   } } 

總結

以上就是本文關于hibernate屬性級別注解實例代碼的全部內容,希望對大家有所幫助。正所謂書中自有顏如玉,下面附幾本不錯的書籍,供大家學習參考,在此也非常希望大家對本站多多支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合天天狠天天透天天伊人| 欧美一级黑人aaaaaaa做受| 亚洲无限乱码一二三四麻| 欧美巨猛xxxx猛交黑人97人| 欧美精品免费在线观看| 97色在线播放视频| 色综合亚洲精品激情狠狠| 91av国产在线| 国产精品入口免费视| 久久免费在线观看| 超碰日本道色综合久久综合| 日韩精品视频中文在线观看| 久久亚洲电影天堂| 国产精品久久久久久av| 亚洲国产欧美一区二区三区久久| 国产一区二区三区在线观看视频| 日韩在线观看免费高清完整版| 国产亚洲精品一区二区| 91精品视频免费看| 精品久久久精品| 欧美激情一区二区三级高清视频| 久久久精品在线观看| 色狠狠av一区二区三区香蕉蜜桃| 欧美精品成人在线| 国产91精品久久久| 九九视频这里只有精品| 亚洲视频国产视频| 欧美日韩性视频| 亚洲理论在线a中文字幕| 黑人与娇小精品av专区| 91免费福利视频| 欧美成人精品在线| 日韩视频―中文字幕| 亚洲最大成人免费视频| 亚洲精品久久久久中文字幕二区| 欧美巨大黑人极品精男| 欧美视频13p| 日韩a**站在线观看| 国产精品香蕉在线观看| 久久夜色精品国产| 国产精品免费久久久久影院| 伊人久久大香线蕉av一区二区| 久久成人精品电影| 亚洲福利视频免费观看| 国产精品一久久香蕉国产线看观看| 欧美电影在线观看网站| 精品成人69xx.xyz| 最新的欧美黄色| 美女视频黄免费的亚洲男人天堂| 92看片淫黄大片看国产片| 久久精品99久久久久久久久| 国产精品中文字幕久久久| 国产精品久久久久免费a∨大胸| 亚洲国产精品成人一区二区| 亚洲网在线观看| 丝袜一区二区三区| 国产精品久久久久7777婷婷| 欧美www在线| 1769国内精品视频在线播放| 亚洲国产日韩欧美在线动漫| 丝袜亚洲另类欧美重口| 在线观看免费高清视频97| 91伊人影院在线播放| 亚洲欧美在线一区二区| 法国裸体一区二区| 欧美成人激情在线| 中日韩午夜理伦电影免费| 国产精品亚洲欧美导航| 97香蕉超级碰碰久久免费软件| 日韩免费在线看| 国产热re99久久6国产精品| 日韩高清中文字幕| 97精品欧美一区二区三区| 亚洲天天在线日亚洲洲精| 中文国产成人精品久久一| 亚洲精品国产综合区久久久久久久| 亚洲精品自拍偷拍| 一本色道久久综合亚洲精品小说| 丝袜亚洲另类欧美重口| 91精品国产99| 欧美日韩在线免费观看| 国产欧美日韩中文字幕| 中文字幕亚洲无线码在线一区| 国产免费一区二区三区在线观看| 国产精品国产三级国产aⅴ浪潮| 91在线视频成人| 欧美劲爆第一页| 国产九九精品视频| 国产成人亚洲综合青青| 国产欧美一区二区三区久久| 国产精品 欧美在线| 欧美亚洲另类视频| 欧美成人精品一区| 日韩少妇与小伙激情| 91久久精品视频| 国产999精品视频| 日韩亚洲精品电影| 2018中文字幕一区二区三区| 欧美在线视频一二三| 日韩视频免费观看| 国产一区二区三区欧美| 亚洲精品久久久久国产| 黄色成人av网| 亚洲3p在线观看| 国产精品福利片| 欧美性xxxx| 久久视频免费在线播放| 国产精品久久久久久久久免费| 亚洲欧美精品中文字幕在线| 性金发美女69hd大尺寸| 亚洲天堂成人在线视频| 国模吧一区二区| 亚洲国产精彩中文乱码av| 欧美日韩亚洲视频一区| 色99之美女主播在线视频| 亚洲精品免费在线视频| 亚洲少妇中文在线| 日韩av一区二区在线观看| 亚洲深夜福利视频| 亚洲成人亚洲激情| 亚洲国产精品va在线观看黑人| 日韩一级黄色av| 久久精品亚洲94久久精品| 欧美高跟鞋交xxxxhd| 亚洲无线码在线一区观看| 欧美国产日韩视频| 欧美成人中文字幕| 91社影院在线观看| 欧美成人免费va影院高清| 欧美精品一本久久男人的天堂| 国产精品久久久久久亚洲调教| 久久99热精品| 日韩成人在线电影网| 国产999精品久久久影片官网| 中文字幕亚洲欧美日韩在线不卡| 欧美激情喷水视频| 伊人久久精品视频| 欧美尺度大的性做爰视频| 精品久久久久久久中文字幕| 国产综合在线观看视频| 日本精品免费观看| 久久夜色精品国产亚洲aⅴ| 欧美猛交免费看| 国产男人精品视频| 亚洲香蕉成视频在线观看| 欧美一区二区三区免费观看| 91高清在线免费观看| 操日韩av在线电影| 中文字幕无线精品亚洲乱码一区| 中文字幕免费精品一区| 国内精品久久久久| 欧美日韩国产中文精品字幕自在自线| 日韩中文字幕网址| 国产精品久久久久久久久男| 久久av红桃一区二区小说| 亚洲精品视频中文字幕| 欧美xxxx做受欧美.88| 91精品国产乱码久久久久久蜜臀| 亚洲男人第一网站| 成人国产精品日本在线| 欧美丝袜一区二区| 欧美日韩不卡合集视频| 国产成人黄色av| 日本国产高清不卡|