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语句的写法,而且具体操作数据库的代码 ...
随机推荐
- js中this的深入研究
this对象是函数在运行时由调用函数的对象决定的: 1.在全局对象中运行函数时,this等于window 2.当函数被作为某个对象的方法调用时, this等于那个对象. 需要注意的几点: 声明函数里的 ...
- Java学习02
Java学习02 1.导入内部的包 一.在包的下面加入下面一句话: import java.util.Scanner; 二.在类中 Scanner input=new Sanner(Sy ...
- BZOJ 1782: [Usaco2010 Feb]slowdown 慢慢游( BIT + dfs )
orz...hzwer 对着大神的 code 看 , 稍微理解了. 考虑一只牛到达 , 那它所在子树全部 +1 , 可以用BIT维护 --------------------------------- ...
- oracle 开发笔记“跨数据库查询复制”
1.方法一:创建DBL(data base link) CREATE PUBLIC DATABASE LINK 数据链名称 CONNECT TO 登陆用户名 IDENTIFIED BY 密码 USIN ...
- 调用 sphinx-build生成HTML文件
安装 Sphinx $ easy_install sphinx Searching for sphinx Reading http://pypi.python.org/simple/sphinx/ R ...
- 基于Bootstrap的步骤引导html页面
美工设计了一个下一步下一步的引导效果界面,百度谷歌了很久没有找到合适的控件,就想着能不能借助Bootstrap的标签页修改下,实现后的效果如下. 实现思路是先PS三张小图片,作为步骤之间引导的箭头,如 ...
- js触屏事件
js的左右滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend.这三个事件最重要的属性是 pageX和 pageY,表示X,Y坐标. touchstart在触摸开始 ...
- 在Update Panel 控件里面添加 File Upload 控件 上传文件
Detail Information:http://www.codeproject.com/Articles/482800/FileplusUploadplusinplusUpdateplusPane ...
- iOS UILabel 使用姿势大全(标红关键字)
一.初始化 ? 1 2 3 UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)]; ...
- ContentProvider的一些总结
ContentProvider中的URI, The URI that identifies the provider 一个特定的uri对应着唯一一个内容提供者, 谷歌官方文档里的说明, Query ...