hibernate 一对多映射
package com.entity.onetomany; import java.util.ArrayList;
import java.util.List; import javax.persistence.Entity;
import javax.persistence.OneToMany; import com.entity.BaseEntity;
@Entity
public class Team extends BaseEntity{
private String name;
@OneToMany(mappedBy="team")
//被Member类的team对象维护即Member.team
private List<Member> members; public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Member> getMembers() {
return members;
}
public void setMembers(List<Member> members) {
this.members = members;
} }
team.java
package com.entity.onetomany; import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne; import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.NamedQuery; import com.entity.BaseEntity; @Entity
@NamedQuery(name = "aa", query = "select m from Member m where team_id=:tid")
public class Member extends BaseEntity {
private String name;
private int no; @ManyToOne(cascade=CascadeType.PERSIST)
//级联保存 保存member的时候自动保存team
@JoinColumn(name="team_id")
//外键team_id
//member为多的一方 所以由member来维护
private Team team; public int getNo() {
return no;
} public void setNo(int no) {
this.no = no;
} public Team getTeam() {
return team;
} public void setTeam(Team team) {
this.team = team;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} }
member.java
package com; import java.util.List;
import java.util.Map; import javax.persistence.Entity; import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.annotations.NamedQuery;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.hibernate.transform.Transformers;
import org.jboss.logging.annotations.Transform.TransformType;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import com.entity.onetomany.Member;
import com.entity.onetomany.Team; public class TestOneToMany {
private Session s;
private Transaction tran;
@Before
public void before(){
s=HibernateUtils.getSession();
tran=s.beginTransaction();
} public void one2many(){
Team team=new Team();
Team team1=new Team();
team.setName("lakers");
team1.setName("thunder");
Member member1=new Member();
member1.setName("kobe");
member1.setTeam(team);//建立关系
Member member2=new Member();
member2.setName("nash");
member2.setTeam(team);//建立关系
Member member3=new Member();
member3.setName("boozer");
member3.setTeam(team);//建立关系
Member member4=new Member();
member4.setName("westbrook");
member4.setTeam(team1);//建立关系
Member member5=new Member();
member5.setName("durant");
member5.setTeam(team1);//建立关系
Member member6=new Member();
member6.setName("ibaka");
member6.setTeam(team1);//建立关系
s.persist(member1);
s.persist(member2);
s.persist(member3);
s.persist(member4);
s.persist(member5);
s.persist(member6);
}
public void one2manyquery(){
Team team= (Team)s.get(Team.class, 1);
//获得team对象
for(Member m:team.getMembers()){
System.out.println(m.getName());
}
}
@After
public void after(){
tran.commit();
HibernateUtils.closeSession(s);
}
}
testonetomany.java
hibernate 一对多映射的更多相关文章
- hibernate一对多映射实现
Junit4方法详解 setUpBeforeClass()类初始化前调用 tearDownAfterClass()类初始化后调用 setUp()在测试方法前调用 tearDown()在测试方法后调用 ...
- hibernate 一对多映射关系
1. 单项多对一映射 custom(顾客)与order(订单) :一个顾客可以有多个订单,一个订单只能有一个顾客 配置方法:在多的一端配置<many -to one& ...
- hibernate一对多映射文件的配置
其中一个Customer对应多个LinkMan Customer的映射文件 Customer.hbm.xml-------------->一对多 <?xml version="1 ...
- Hibernate一对多映射列表实例(使用xml文件)
如果持久化类具有包含实体引用的列表(List)对象,则需要使用一对多关联来映射列表元素. 在这里,我们使用论坛应用场景,在论坛中一个问题有多个答案. 在这种情况下,一个问题可以有多个答案,每个答案可能 ...
- 【hibernate】<第二节>hibernate的一对多映射(基本类型)
所需工具与前文一致! 第一部分内容:基本类型的一对多(one to many) 以部门表与员工表为例: 目录结构: hibernate.cfg.xml内容 <?xml version=" ...
- 【SSH系列】Hibernate映射 -- 一对多关联映射
映射原理 一对多关联映射和多对一关联映射的映射原理是一样一样的,所以说嘛,知识都是相通的,一通百通,为什么说一对多关联映射和多对一关联映射是一样的呢?因为她们都是在多的一端加入一个 ...
- java使用Myeclipse创建Hibernate项目碰到的诸多问题总结
这两天一直在搞Myeclipse创建Hibernate的1对多映射. 由于缺乏经验,可算是把我坑惨了.控制台是不停地报错啊~~~~我差点就崩溃了. 1.看的是慕课网的Hibernate一对多映射教程, ...
- 解决You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order (order_name, customer)
在学习hibernate一对多映射关系时,根据视频学习的时候,例子是顾客和订单的问题,一个顾客有多个订单.按照视频中的敲代码出现了You have an error in your SQL synta ...
- hibernate进阶--一对多映射配置
hibernate作为一款优秀的ORM框架,广受大家喜爱,也被Java社区公认为持久层的首选.虽然jdbc为Java数据库操 作带来了诸多便利,但是并没有统一SQL语句的写法,而且具体操作数据库的代码 ...
随机推荐
- linux目录对照命令——meld
preface:也不算是非常大的事情,但也须要这么个东西.对照两个目录里的内容是否同样,知道差异在哪里.找出问题所在,vimdiff 仅仅能比較两个文件是否同样,比較不了目录,只是能够写个bash脚本 ...
- Foundation Sorting: Single List Insertion Sort
/* List Insertion Sorting. * Implementation history:. * 2013-09-15, Mars Fu, first version. */ #incl ...
- MVC设计模式JavaWeb实现
JSP开发模式 jsp开发模式的发展 1.模式1:(适合小型项目的技术的开发) a.第一版本号.纯jsp(封装数据.处理数据,显示数据) b.第二版本号,Jsp+JavaBean. ...
- Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数
本文參考<Android系统源码情景分析>,作者罗升阳. 一.Binder库(libbinder)代码: ~/Android/frameworks/base/libs/binder --- ...
- 学习:WordXML格式初步分析
Office2003以上,Word可以以XML文本格式存储,这样就可以使用外部程序创建Word文件,而不需要使用Word的对象.也能够自由的打开分析Word文件,或者发布到自己的Web页面,或者其他更 ...
- 使用RadioGroup与RadioButton实现多选一
RadioGroup是RadioButton的集合, RadioGroup里面可以包含很多RadioButton,提供多选一机制,只能选择其中一个 RadioGroup的orientation(方向) ...
- .NET参数化Oracle查询参数
最近在做数据库移植工作(SqlServer 2008 -> Oracle 11g),遇到一些不兼容的问题,以下是一个参数化方面的区别,资料来自其他网友,在此整理了一下. public stati ...
- Fedora 17 安装 完全 指南
一.了解Fedora 17先来了解一下Fedora吧.它是由Red Hat赞助的一个全球性开源项目,秉承“自由”.“友爱”.“杰出”.“前卫”宗旨. 1.Fedora 17的主要系统改进内核:采用3. ...
- 2013 成都网络赛 1004 Minimum palindrome
题目大意:用m个字母组成一个长度为N的字符串,使得最长的回文子串 的长度最小. 并且要求字典序最小. 思路:分类模拟. 当M为1 的时候就直接输出N个A 当M大于2的时候就循环ABC 当M等于2的时候 ...
- sql 合并相同条件的字段
案例:将 Albums 字段相同的数据的 PhotoUrl 字段 拼接到一起(我写的是前9行,可以去掉) 一.表的结构 二.sql 语句(为了方便 我加了一个条件[Albums=783] ) ) '; ...