多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 數(shù)據(jù)庫(kù) > 數(shù)據(jù)庫(kù)應(yīng)用 > hibernate注解-屬性級(jí)別注解

hibernate注解-屬性級(jí)別注解

來源:程序員人生   發(fā)布時(shí)間:2016-07-07 08:54:09 閱讀次數(shù):3204次

屬性級(jí)別注解

添加方式:

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


@Id

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

@SequenceGenerator

@GeneratedValue

  @GeneratedValue(strategy=GenerationType,generator=""):可選,用于定義主鍵生成策略
  strategy表示主鍵生成策略,取值有:
       GenerationType.AUTO:根據(jù)底層數(shù)據(jù)庫(kù)自動(dòng)選擇(默許)
GenerationType.INDENTITY:根據(jù)數(shù)據(jù)庫(kù)的Identity字段生成
GenerationType.SEQUENCE:使用Sequence來決定主鍵的取值
GenerationType.TABLE:使用指定表來決定主鍵取值,結(jié)合@TableGenerator使用


@Column

     @Column-可將屬性映照到列,使用該注解來覆蓋默許值,@Column描寫了數(shù)據(jù)庫(kù)表中該字段的詳細(xì)定義,這對(duì)根據(jù)JPA
     注解生成數(shù)據(jù)庫(kù)表結(jié)構(gòu)的工具非常有作用。
     經(jīng)常使用屬性:
        name:可選,表示數(shù)據(jù)庫(kù)表中該字段的名稱,默許情形屬性名稱1致
nullable:可選,表示該字段是不是允許為null,默許為true
unique:可選,表示該字段是不是為唯1標(biāo)識(shí),默許為false
length:可選,表示該字段的大小,僅對(duì)String類型的字段有效,默許值225,主鍵不能使用默許值
insertable:可選,表示在ORM框架履行插入操作時(shí),該字段是不是應(yīng)出現(xiàn)INSERTRT語(yǔ)句中,默許為true
updateable:可選,表示在ORM框架履行更新操作時(shí),該字段是不是應(yīng)當(dāng)出現(xiàn)在UPDATE語(yǔ)句中,默許為true。對(duì)已創(chuàng)建
就不可以更改的字段,該屬性非常有用

@Embedded

        @Embedded是注釋屬性的,表示該屬性的類是嵌入類。
注意:同時(shí)嵌入類也必須標(biāo)注@Embeddable注解


@EmbeddedId

        @EmbeddedId使用嵌入式主鍵類實(shí)現(xiàn)復(fù)合主鍵
注意:嵌入式主鍵類必須實(shí)現(xiàn)Serializable接口、必須有默許的public無(wú)參數(shù)的構(gòu)造方法、必須覆蓋equals和hashCode方法


@Lob
@Version
@Basic
@Transient

      可選,表示該屬性并不是1個(gè)到數(shù)據(jù)庫(kù)表的字段的映照,ORM框架將疏忽該屬性,如果1個(gè)屬性并不是數(shù)據(jù)庫(kù)表的字段映照,就
      務(wù)勢(shì)必其標(biāo)示為@Transient,否則ORM框架默許其注解為@Basic
實(shí)例:
        hibernate.properties配置:
         
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration⑶.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>
            實(shí)體類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é)生實(shí)體類 */ //@Entity// //@Entity(name="t_students")//如果不添加名字,則默許與實(shí)體類名字相同,如果想要自行設(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é)號(hào) // @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 //表示該字段不會(huì)被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實(shí)體類:
     
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;//身份證號(hào) @Column(length=8) private String sid;//學(xué)號(hào) 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 //表示是1個(gè)嵌入類,這個(gè)類的對(duì)象在另外一個(gè)實(shí)體類中充當(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; } }
測(cè)試類:
       
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配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 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配置對(duì)象 Configuration config = new Configuration().configure(); //創(chuàng)建服務(wù)注冊(cè)對(duì)象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //生成SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry); //創(chuàng)建會(huì)話 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,"張3豐","男",new Date(),"太極拳",add,7899); session.save(s); tx.commit(); // SchemaExport export = new SchemaExport(config); // export.create(true,true); } }

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 日韩精品视频在线播放 | 欧美一区精品 | 国产免费不卡v片在线观看 国产免费叼嘿视频 | 免费爱爱视频 | 日韩一级视频 | 欧洲免费无线码一二区 | 97精品伊人久久大香线蕉 | 午夜视频在线观看视频 | 亚洲精品第一区二区三区 | 牛和人交videos欧美冫3d | 国产成人免费不卡在线观看 | 99精品亚洲| 91大片| 一级毛片国产真人永久在线 | 欧美日韩不卡码一区二区三区 | 日本一区二区三区在线 视频 | 国产精品v欧美精品v日本精 | 五月亚洲| 日本在线视频二区 | 日韩一级片在线免费观看 | 亚洲全网成人资源在线观看 | 亚洲爽| 秋霞理论在一l级毛片 | 亚洲经典一区二区三区 | 另类图片另类小说 | 可以免费看的黄色网址 | 性色网站 | 日韩欧美国产另类 | 视频一区 中文字幕 | 欧美激情一区二区三区在线播放 | 亚洲精品亚洲人成毛片不卡 | 欧美特黄一级aa毛片 | 色综合天天综合网国产成人网 | 韩国三级hd中文字幕一男多女 | 欧美亚洲国产精品久久蜜芽 | 国产午夜精品片一区二区三区 | 国产乱码亚洲精品一区二区 | 亚洲产在线精品第一站不卡 | 亚洲a视频 | 国产极品嫩模在线观看91精品 | 国产精品一区二区三区四区 |