设为首页 加入收藏

TOP

Hibernate――ORMapping(二)
2015-07-24 11:34:32 来源: 作者: 【 】 浏览:21
Tags:Hibernate ORMapping
S `wife` (`id`) )

4、加入@JoinColumn(name="wifeId")可以修改husband表中外键的列的名称。再次运行show create table husband;可以看到如下片段

CREATE TABLE `husband` (

`id` int(11) NOT NULL,

`name` varchar(255) DEFAULT NULL,

`wifeId` int(11) DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `FK_kruq9jfxa0jrc2od8dbh09mia` (`wifeId`),

CONSTRAINT `FK_kruq9jfxa0jrc2od8dbh09mia` FOREIGN KEY (`wifeId`) REFERENCES `wife` (`id`)

)

?

二、xml配置

在xml中配置one2one的方法如下:





















观察结果:

1.在xml中配置的是many-to-one和 unique="true"

第二种:一对一双向外键关联

一、Annotation配置

1.在一对一双向外键关联的时候,可以使用@OneToOne(mappedBy="对象名")的方式设置。

2.凡是双向关联,必设MappedBy

Husband.java

package com.zgy.hibernate.model;



import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.OneToOne;



@Entity

public class Husband {

private int id;

private String name;

private Wife wife;

@Id

@GeneratedValue

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}



@OneToOne

public Wife getWife() {

return wife;

}

public void setWife(Wife wife) {

this.wife = wife;

}



}





Wife.java

package com.zgy.hibernate.model;



import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.OneToOne;



@Entity

public class Wife {

private int id;

private String name;

private Husband husband;

@Id

@GeneratedValue

public int getId() {

return id;

}



public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@OneToOne(mappedBy="wife")

public Husband getHusband() {

return husband;

}



public void setHusband(Husband husband) {

this.husband = husband;

}





}

?

二、xml设置:

范例:

























第三种:一对一单向主键关联(不重要)

?

1.使用如下的Annotation设置一对一单项主键关联(目前没有成功过,Hibernate文档上所写,但是没有成功实现过)

@OneToOne

@PrimaryKeyJoinColumn

2.xml中的配置

        person   

第四种:一对一双向主键关联(不重要)


第五种:一对一联合主键

一、Annotation配置

1.在wife.java中使用id和name作为联合主键

2.在husband.java中关联到wife.java中的联合主键

范例:

Wife.java

package com.zgy.hibernate.model;



import java.io.Serializable;



import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.IdClass;

import javax.persistence.OneToOne;

import javax.persistence.PrimaryKeyJoinColumn;



@Entity

@IdClass(WifePK.class)

public class Wife {

private int id;

private String name;

private int age;



@Id

public int getId() {

return id;

}

@Id

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}



public int getAge() {

return age;

}



public void setAge(int
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇函数 下一篇jdbc自己理解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Java 实现多个大文件 (2025-12-24 23:22:00)
·Java多线程编程在工 (2025-12-24 23:21:56)
·请问微信4.0版本xwec (2025-12-24 22:48:42)
·电脑NVIDIA的文件夹 (2025-12-24 22:48:40)
·如何看待微信新版本 (2025-12-24 22:48:37)