-
勤記錄查看全部
-
關(guān)聯(lián)映射注解 一對(duì)一單向關(guān)聯(lián)外鍵 在一方持有另一方類類型的引用. @OneToOne、@JoinColumn注解都是屬性注解. @OneToOne注解包含必填cascade屬性,表示級(jí)聯(lián)操作. 在哪個(gè)model應(yīng)用cascade屬性就表示該表的操作會(huì)級(jí)聯(lián)另一個(gè)表. @JoinColumn注解用來指明外鍵. name屬性(必選):指定外鍵名. unique屬性(可選):表示外鍵的值是否唯一. 一對(duì)一關(guān)聯(lián),外鍵的值是唯一的. 一對(duì)多關(guān)聯(lián)、多對(duì)多關(guān)聯(lián),外鍵的值則不唯一. @JoinColumn指定外鍵后,會(huì)在相應(yīng)的表中創(chuàng)建外鍵字段.(使用Hibernate自動(dòng)創(chuàng)建表結(jié)構(gòu)). 外鍵用來關(guān)聯(lián)參照表的主鍵,成為外鍵表.(一對(duì)一關(guān)系中,只有一個(gè)表存在外鍵). 在Hibernate中,如果表里存在外鍵字段.則在model中無需存在外鍵的屬性.直接配置即可.(name值對(duì)應(yīng)表中外鍵列的列名) 外鍵表: @Entity public class Student{ @OneToOne(cascade="CascadeType.All") @JoinColumn(name="iid"); private Idcard idcard; @Id @GeneratedValue private Integer sid; private String gender; } 參照表: @Entity public class Idcard{ @Id @GeneratedValue private Integer iid; private String idnum; }查看全部
-
實(shí)體之間的關(guān)系查看全部
-
@Transient注解 該注解是屬性注解. 表示該屬性并非一個(gè)到數(shù)據(jù)庫的字段的映射,ORM框架將忽略該屬性,如果model中的一個(gè)屬性并非數(shù)據(jù)庫表的字段映射,就應(yīng)將其用@Transient注解標(biāo)注,否則ORM框架默認(rèn)其注解為@Basic.查看全部
-
@EmbeddedId注解 該注解為屬性注解. @EmbeddedId使用嵌入式主鍵類實(shí)現(xiàn)復(fù)合主鍵. 嵌入式主鍵類中只能有主鍵屬性(使用@EmbeddedId注解標(biāo)注) 嵌入式主鍵類必須實(shí)現(xiàn)Serializable接口、必須有默認(rèn)public無參構(gòu)造方法、必須重寫equals、hashCode方法. @Embeddable public class PK implements Serializable{ @EmbeddedId private String idcard; @EmbeddedId private String sid; //重寫equals、hashCode方法. //無參公共構(gòu)造方法. } @Entity public class Student{ @Id @GeneratedValue(generator="pk"); @GenericGenerator(name="pk",generator="assigned"); private Pk pk; private String gender; } 可以直接在實(shí)體類使用多個(gè)@Id注解定義為復(fù)合主鍵. 也可以使用嵌入主鍵類實(shí)現(xiàn)復(fù)合主鍵(嵌入屬性依然要用@Id注解標(biāo)識(shí)).查看全部
-
@Embedded注解 該注解是屬性注解,表示該屬性的類是嵌入類. 用于在一個(gè)類中存在另一個(gè)類類型的屬性上. 使用@Embedded注解時(shí),其類型對(duì)應(yīng)的類上必須使用@Embeddable注解標(biāo)識(shí). @Embeddable public class Address(){ private String home; private String post; } @Entity public class User{ @Id @GeneatedValue; private Integer indexid; private String name; private String gender; @Embedded //該注解可以省略不寫 private Address address; }查看全部
-
@Column注解 可將屬性映射到列,使用該注解來覆蓋字段的默認(rèn)屬性值.(如長(zhǎng)度、是否允許為空等). 常用屬性: name:表示數(shù)據(jù)庫表中該字段的名稱.默認(rèn)情況下model中的屬性名與數(shù)據(jù)表存的屬性名一致.不一致時(shí)需要使用該屬性指明. nullable:是否允許為null. unique:是否為唯一標(biāo)識(shí). length:字段長(zhǎng)度,僅對(duì)String類型的字段有效,默認(rèn)字符串類型的長(zhǎng)度為255. insertable:是否在進(jìn)行插入操作時(shí)該字段是否出現(xiàn)在INSERT語句中,默認(rèn)為true. updateable:可選,是否在進(jìn)行更新操作時(shí)該字段是否出現(xiàn)在UPDATE語句中.默認(rèn)為true.用于一經(jīng)創(chuàng)建就不可以更改該字段的值.查看全部
-
@GeneratorValue指定主鍵的生成策略. 如果一個(gè)主鍵沒有添加@GeneratorValue注解,則就是一個(gè)普通的主鍵,無生成策略. 當(dāng)主鍵是int類型時(shí),此時(shí)可以使用自動(dòng)增長(zhǎng)類型(非int不行). @Id @GeneratedValue //該注解默認(rèn)就是auto類型,根據(jù)底層數(shù)據(jù)庫自動(dòng)選擇策略. private int no; 相當(dāng)于: @GeneratedValue(strategy=GenerationType.AUTO) 如果主鍵采用手工賦值的方式. 那么就要使用@GeneratedValue注解的generator屬性指定主鍵生成器的名稱. 并且使用@GenericGenerator注解定義主鍵生成器. @GenericGenerator為屬性注解,標(biāo)注在主鍵上.具有name、strategy屬性. name:指定主鍵生成器的名稱 strategy:指定主鍵生成器的生成策略(字符串類型) 例子: @Id @GeneratedValue(generator="text") @GenericGenerator(name="text",strategy="assigned") private String sid; @GeneratedValue的generator屬性要與@GenericGenerator的name屬性保持一致. 表示@GeneratedValue所指定的主鍵生成器為@GenericGenerator定義的主鍵生成器.查看全部
-
@GeneratedValue與@TableGenerator結(jié)合使用的例子: @TableGenerator注解將當(dāng)前主鍵的值單獨(dú)保存到一個(gè)數(shù)據(jù)庫的表中,主鍵的值每次都是從指定的表中查詢來獲得.該表中的數(shù)據(jù)可以是根據(jù)UUID生成的. 這種方法生成主鍵的策略可以適用于任何的數(shù)據(jù)庫,不必?fù)?dān)心不同數(shù)據(jù)庫不兼容造成的問題.查看全部
-
@GeneratedValue注解 @GeneratedValue注解與@Id注解一起使用,用于定義主鍵的生成策略. 包含兩個(gè)屬性strategy(主鍵生成策略)、geneator(主鍵生成器) strategy可以取: 1.GenerationType.AUTO:根據(jù)底層數(shù)據(jù)庫自動(dòng)選擇(默認(rèn)) 2.GenerationType.INDENTITY:根據(jù)數(shù)據(jù)庫的Identity字段生成. 3.GenerationType.SEQUENCE:使用Sequence(序列)來決定主鍵的取值. 4.GenerationType.TABLE:使用指定的表來決定主鍵的取值 (結(jié)合某些表來實(shí)現(xiàn),必須與@TableGenerator注解一起使用).查看全部
-
mysql默認(rèn)字符串類型的字段其長(zhǎng)度為255. mysql規(guī)定使用String類型的字段作為主鍵時(shí),字符串的長(zhǎng)度不能過長(zhǎng). 當(dāng)使用@Id注解標(biāo)識(shí)一個(gè)字符串屬性作為主鍵時(shí),若沒有設(shè)定其長(zhǎng)度,則默認(rèn)255會(huì)超出它作為主鍵規(guī)定的長(zhǎng)度,此時(shí)就會(huì)發(fā)生錯(cuò)誤. 使用@Column注解的length屬性設(shè)置model屬性映射到數(shù)據(jù)庫表里對(duì)應(yīng)字段的長(zhǎng)度. @Column注解標(biāo)注在屬性上.查看全部
-
@Id注解 一個(gè)實(shí)體類可以有一個(gè)或者多個(gè)屬性被映射為主鍵.如果有多個(gè)屬性定義為主鍵屬性,該實(shí)體類必須實(shí)現(xiàn)serializable接口.查看全部
-
Hibernate屬性級(jí)別注解有很多.其中紅色部分為常用的屬性注解.查看全部
-
使用JPA注解與數(shù)據(jù)庫表進(jìn)行映射時(shí),則不需要為每張數(shù)據(jù)表建立對(duì)應(yīng)的hbm.xml配置文件.直接通過在model類上使用注解進(jìn)行數(shù)據(jù)表的關(guān)聯(lián)操作. 只需在Hibernate.cfg.xml主配置文件中使用<mapping>標(biāo)簽的class屬性指定關(guān)聯(lián)的model全限定名.查看全部
-
@Embeddable注解 相當(dāng)于hbm配置中的<component>組件屬性,@Embeddable注解標(biāo)注在組件類上. 即一個(gè)類中包含另一個(gè)類的對(duì)象作為屬性.使用Hibernate自動(dòng)生成表結(jié)構(gòu)時(shí),會(huì)建立一張帶有組件屬性與非組件屬性的表.查看全部
舉報(bào)
0/150
提交
取消