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语句的写法,而且具体操作数据库的代码 ...
随机推荐
- SQL 注入与防御实例
注入 1. 创建存储 USE TSQL2012; GO IF OBJECT_ID('Sales.ListCustomersByAddress') IS NOT NULL DROP PROCEDURE ...
- ios7以上自定义导航栏标题的字体大小及颜色的方法
自定义导航栏的字体和颜色,只需要自定义一个lable,然后将lable添加到导航栏的titleview中就可以了 代码如下 UILabel *label = [[UILabel alloc] init ...
- CocoaPods对于不同Target引入不同的第三方库Podfile的写法
有的时候我们需要建立多个Target来完成不同的测试环境的区分,而多个Target之间可能会有第三方库的不同引用,如果我们在使用CocoaPods管理我们的第三方库的时候,我们就需要思考我们需要如何实 ...
- java的大数类
java中的大数类,真的很方便,不用自己再写计算的函数,先写一个简单的例子,以后再补充 注意大数初始化的时候,参数十字符型的,如果传进去的变量十一个数字,需要加上一个空字符即:+"" ...
- Jetty 8.1 安装 运行 部署
链接地址:http://blog.csdn.net/lego2816/article/details/42650545 Java + MySQL 从Jfinal开始,第一步先走完整个流程,主要是发布部 ...
- known good die( KGD) /确认好裸芯片,合格芯片
英文:known good die( KGD) / 中文:确认好裸芯片,合格芯片 完工的晶圆上有许多晶片存在,其单一品质有好有坏,经过老化试验后,其确知电性能良好的晶片即称为己知好晶片.不过,已知好晶 ...
- html = data.decode('gbk').encode('utf-8')
html = data.decode('gbk').encode('utf-8')此处encode编码要与html文件内charset=utf-8的格式一致,如果不一致,浏览器打开乱码,文本编辑器正常 ...
- STL--stack/queue的使用方法
stack(栈)和queue(队列)也是在程序设计中经常会用到的数据容器,STL为我们提供了方便的stack(栈)的queue(队列)的实现. 准确地说,STL中的stack和queue不同于vect ...
- poj 2363 Blocks(暴力)
题目链接:http://poj.org/problem?id=2363 思路分析:由于数据较小,采用暴力搜索法.假设对于矩形边长 1 <= a <= b <= c <= N; ...
- easui tree载入时自动展开无子节点的节点
利用loadFilter对后台返回的原始数据进行过滤处理,将数据中的state字段修改相应的值,若无子节点,则改成open,若有子节点,则改成closed. 由于一个node属性只有下面几项内容,因此 ...