设为首页 加入收藏

TOP

Hibernate――ORMapping(四)
2015-07-24 11:34:32 来源: 作者: 【 】 浏览:19
Tags:Hibernate ORMapping
public void setAge(int age) { this.age = age; } } Husband.java中使用@Embedded package com.zgy.hibernate.model; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinColumns; 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; } @Embedded public Wife getWife() { return wife; } public void setWife(Wife wife) { this.wife = wife; } }

观察结果:

使用show create table husband;

CREATE TABLE `husband` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(255) DEFAULT NULL,

`age` int(11) NOT NULL,

`wifeName` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

)

?

?

二、xml配置
































?

第七种:多对一和一对多

A、多对一单向关联

例如:一个人可以有多个梦想

可以有如下设计

1、person表

2、dream表

错误的做法:

I、错误的做法:在一方加冗余

person表

personid

personname

dream

1

zhangsan

1

1

zhangsan

2

?

dream表

dreamid

dreamdesc

1

Make money

2

Eat a lot

?

正确的做法:

数据表设计:在多方加外键

?

一、Annotation配置

小实验1:

1.设计一个Group.java类,此类包含id、name属性

2.设计一个User.java类,此类包含id、name、group属性

3.对应关系:一个用于属于一个组,一个组含有多个用户,user对group的关系就是many-to-one单项映射关系

4.Group.java

package com.zgy.hibernate.model;



import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

@Entity

@Table(name="t_group")

public class Group {

private int id;

private String name;



@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;

}





}

5.User.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.ManyToOne;

import javax.persistence.Table;

@Entity

@Table(name="t_user")

public class User {

private int id;

private String name;



private Group group;

@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;

}



@ManyToOne

@JoinColumn(name="groupId")

public Group getGroup() {

return group;

}

public void setGroup(Group group) {

this.group = group;

}

}

6.Junit测试

package com.zgy.hibernate.model;



import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.AnnotationConfiguration;
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/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)