码迷,mamicode.com
首页 > Web开发 > 详细

hibernate注解

时间:2015-12-22 01:00:39      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:

一:理解Hibernate注解

从JDK1.5开始,JAVA增加了Annotation支持,通过Annotation可以将一些额外的信息写在JAVA源程序中,这些信息可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。

由于JAVA Annotation的盛行,很多原来采用XML配置文件进行管理的信息,现在都开始改为使用Annotation进行管理。其实不管是XML配置,还是Annotaion,他们的本质都是一样,只是信息的载体不同而已。

 Hibernate这种ORM框架的出现启发了JavaEE规范的制定者,于是催生了JPA规范。

从另一个方面看,JPA规范的出现又为Hibernate等ORM框架制定了标准。

早期Hibernate使用XML映射文件来管理持久化类和数据表之间的映射关系,而JPA规范则推荐使用更简单,易用的Annotation来管理实体类与数据库表之间的映射关系,这样就可以避免了一个实体需要同时维护两份文件(JAVA类和XML映射文件),实体类的JAVA代码以及映射信息(写在Annotation中)都可集中在一份文件中。

二:Annotation基本配置

先写个一对一唯一主键关联

 1 package com.lovo.one2one;
 2 
 3 import javax.persistence.CascadeType;
 4 import javax.persistence.Column;
 5 import javax.persistence.Entity;
 6 import javax.persistence.GeneratedValue;
 7 import javax.persistence.Id;
 8 import javax.persistence.OneToOne;
 9 import javax.persistence.PrimaryKeyJoinColumn;
10 import javax.persistence.Table;
11 
12 import org.hibernate.annotations.GenericGenerator;
13 /**
14  * 一对一主键关联
15  * @author 
16  *
17  */
18 @Entity  //将一个JAVA类声明为一个可持久化的POJO对象
19 @Table(name="t_husband") // 该持久类所对应的表,声明在name属性中给定
20 public class HusbandBean {
21     
22     @Id //指定标识属性
23     @Column(name="pk_id") //指定属性所对应的列,如果列名和属性名一致,可以不定义name属性
24     @GenericGenerator(name="hbincrement",strategy="increment") //定义主键JPA生成策略(自动增长)
25     @GeneratedValue(generator="hbincrement")
26     private Integer id;
27     
28     @Column(name="f_name")
29     private String name;
30     
31     @OneToOne(cascade=CascadeType.ALL) //CascadeType.ALL---增删改所有级联.
32     @PrimaryKeyJoinColumn
33     private WifeBean myWife;
34     
35     public Integer getId() {
36         return id;
37     }
38     public void setId(Integer id) {
39         this.id = id;
40     }
41     public String getName() {
42         return name;
43     }
44     public void setName(String name) {
45         this.name = name;
46     }
47     public WifeBean getMyWife() {
48         return myWife;
49     }
50     public void setMyWife(WifeBean myWife) {
51         this.myWife = myWife;
52     }
53     
54 }
 1 package com.lovo.one2one;
 2 
 3 import javax.persistence.CascadeType;
 4 import javax.persistence.Column;
 5 import javax.persistence.Entity;
 6 import javax.persistence.GeneratedValue;
 7 import javax.persistence.Id;
 8 import javax.persistence.OneToOne;
 9 import javax.persistence.PrimaryKeyJoinColumn;
10 import javax.persistence.Table;
11 
12 import org.hibernate.annotations.GenericGenerator;
13 import org.hibernate.annotations.Parameter;
14 /**
15  * 一对一主键关联
16  * @author Administrator
17  *
18  */
19 @Entity
20 @Table(name="t_wife")
21 public class WifeBean {
22     @Id
23     @Column(name="pk_id")
24     @GenericGenerator(name="hbforeign",strategy="foreign",parameters={@Parameter(name="property",value="myMan")})
25     @GeneratedValue(generator="hbforeign")
26     private Integer id;
27     
28     @Column(name="f_name")
29     private String name;
30     
31     
32     @OneToOne(cascade=CascadeType.ALL)
33     @PrimaryKeyJoinColumn
34     private HusbandBean myMan;
35 
36 
37     public Integer getId() {
38         return id;
39     }
40 
41 
42     public void setId(Integer id) {
43         this.id = id;
44     }
45 
46 
47     public String getName() {
48         return name;
49     }
50 
51 
52     public void setName(String name) {
53         this.name = name;
54     }
55 
56 
57     public HusbandBean getMyMan() {
58         return myMan;
59     }
60 
61 
62     public void setMyMan(HusbandBean myMan) {
63         this.myMan = myMan;
64     }
65     
66 }

睡觉了!,明天起来写!

 

hibernate注解

标签:

原文地址:http://www.cnblogs.com/hellokitty1/p/5065246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!