博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【hibernate框架】一对多(多对一)双向关联(Annotation实现)
阅读量:6911 次
发布时间:2019-06-27

本文共 2154 字,大约阅读时间需要 7 分钟。

用户和组的关联,一个用户只能属于一个组,一个组可以拥有多个用户

User.java:

package cn.edu.hpu.one2many;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.ManyToOne;import javax.persistence.Table;@Entity@Table(name="m_user")public class User {	private int id;	private String name;	private Group group;	        @ManyToOne	public Group getGroup() {		return group;	}	public void setGroup(Group group) {		this.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;	}	}
Group.java:
package cn.edu.hpu.one2many;import java.util.HashSet;import java.util.Set;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.OneToMany;import javax.persistence.Table;@Entity@Table(name="m_group")public class Group {	private int id;	private String name;	private Set
users=new HashSet
(); //选择set的原因是因为,set互相之间不会有重复的 //跟数据库模型比较匹配 @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; } //只要有双向就要指定制定一个属性(mapedby) //不指定的话会有两个相同的字段产生 @OneToMany(mappedBy="group") public Set
getUsers() { return users; } public void setUsers(Set
users) { this.users = users; } }
在hibernate.cfg.xml中添加:
<mapping class="cn.edu.hpu.many2many.Group"/>
<mapping class="cn.edu.hpu.many2many.User"/>
生成的sql语句:
alter table m_user 
        drop 
        foreign key FKBF71E05DAB4F2BAC
    drop table if exists m_group
    drop table if exists m_user
    create table m_group (
        id integer not null auto_increment,
        name varchar(255),
        primary key (id)
    )
    create table m_user (
        id integer not null auto_increment,
        name varchar(255),
        groupId integer,
        primary key (id)
    )
    alter table m_user 
        add index FKBF71E05DAB4F2BAC (groupId), 
        add constraint FKBF71E05DAB4F2BAC 
        foreign key (groupId) 

        references m_user (id)

转载请注明出处:

你可能感兴趣的文章
统计文章各种分类总数
查看>>
CheckBoxList 拓展
查看>>
Eclipse 使用小结
查看>>
【MVC 4】6.SportsSore:导航
查看>>
ArcEngine的ToolbarControl解析
查看>>
Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录
查看>>
细说ES7 JavaScript Decorators
查看>>
C# Win32控制台线程计时器代码示例
查看>>
JAVA面试题
查看>>
【小贴士】【stringify神BUG】【localstorage失效】【消灭Safari alert框】【是否延迟加载】【页面10px白屏】...
查看>>
Android 图片处理效果集
查看>>
【Andorid X 项目笔记】TextView字幕效果(3)
查看>>
ListView 条目加载上滑下滑首尾缩放动画实现
查看>>
解决打开bootstrap模态框抖动问题
查看>>
WMware 10 Ubuntu 12.04 进入Unity模式
查看>>
scala的Option
查看>>
CANopenNode drvTemplate/CO_driver.h hacking
查看>>
自动适应输入内容宽度的TextBox控件
查看>>
GBDT的基本原理
查看>>
Java 程序员 面试前必备知识
查看>>