1.

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping > <class name="mypack.Monkey" table="MONKEYS"> <id name="id" type="long" column="ID">
<generator class="increment"/>
</id> <property name="name" type="string" column="NAME" /> <many-to-one
name="team"
column="TEAM_ID"
class="mypack.Team"
lazy="proxy"
/> </class> </hibernate-mapping>

2.

 package mypack;

 public class Monkey{

     private Long id;
private String name;
private Team team; public Monkey(String name, Team team) {
this.name = name;
this.team = team;
} public Monkey() {
} public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getName() {
return this.name;
} public void setName(String name) {
this.name = name;
} public Team getTeam() {
return this.team;
} public void setTeam(Team team) {
this.team = team;
}
}

3.

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping > <class name="mypack.Team" table="TEAMS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id> <property name="name" type="string" column="NAME" /> <set
name="monkeys"
inverse="true"
lazy="true"> <key column="TEAM_ID" />
<one-to-many class="mypack.Monkey" />
</set> </class>
</hibernate-mapping>

4.

 package mypack;

 import java.util.Set;
import java.util.HashSet; public class Team { private Long id;
private String name;
private Set monkeys=new HashSet(); public Team(String name, Set monkeys) {
this.name = name;
this.monkeys = monkeys;
} public Team() {
} public Team(Set monkeys) {
this.monkeys = monkeys;
} public Long getId() {
return this.id;
} public void setId(Long id) {
this.id = id;
} public String getName() {
return this.name;
} public void setName(String name) {
this.name = name;
} public Set getMonkeys() {
return this.monkeys;
} public void setMonkeys(Set monkeys) {
this.monkeys = monkeys;
} }

5.

 package mypack;

 import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.*; public class BusinessService{
public static SessionFactory sessionFactory;
static{
try{
// Create a configuration based on the properties file we've put
Configuration config = new Configuration();
//load hibernate.cfg.xml
config.configure();
// Get the session factory we can use for persistence
sessionFactory = config.buildSessionFactory();
}catch(RuntimeException e){e.printStackTrace();throw e;}
} public void findAllTeams(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction(); System.out.println("findAllTeams():executing session.createQuery().list()");
List teamLists=session.createQuery("from Team as m").list(); System.out.println("findAllTeams():executing teamLists.iterator()");
Iterator teamIterator=teamLists.iterator(); System.out.println("findAllTeams():iterating team1");
Team team1=(Team)teamIterator.next(); System.out.println("findAllTeams():iterating team2");
Team team2=(Team)teamIterator.next(); System.out.println("findAllTeams():iterating team3");
Team team3=(Team)teamIterator.next(); System.out.println("findAllTeams():iterating team4");
Team team4=(Team)teamIterator.next(); System.out.println("findAllTeams():executing team1.getMonkeys().iterator()");
Iterator monkeyIterator1=team1.getMonkeys().iterator(); System.out.println("findAllTeams():executing team2.getMonkeys().iterator()");
Iterator monkeyIterator2=team2.getMonkeys().iterator(); System.out.println("findAllTeams():executing team3.getMonkeys().iterator()");
Iterator monkeyIterator3=team3.getMonkeys().iterator(); System.out.println("findAllTeams():executing team4.getMonkeys().iterator()");
Iterator monkeyIterator4=team4.getMonkeys().iterator(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void loadTeam(){ Session session = sessionFactory.openSession();
Transaction tx = null;
Team team=null;
try {
tx = session.beginTransaction(); System.out.println("loadTeam():executing session.load()");
team=(Team)session.load(Team.class,new Long(1)); System.out.println("loadTeam():executing team.getName()");
team.getName(); System.out.println("loadTeam():executing team.getMonkeys().iterator()");
Iterator monkeyIterator=team.getMonkeys().iterator(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void getTeam(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
System.out.println("getTeam():executing session.get()");
Team team=(Team)session.get(Team.class,new Long(1)); System.out.println("getTeam():executing team.getName()");
team.getName(); System.out.println("getTeam():executing team.getMonkeys().iterator()");
Iterator monkeyIterator=team.getMonkeys().iterator(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void getMonkey(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
System.out.println("getMonkey():executing session.get()");
Monkey monkey=(Monkey)session.get(Monkey.class,new Long(1)); System.out.println("getMonkey():executing monkey.getName()");
monkey.getName(); System.out.println("getMonkey():executing monkey.getTeam()");
Team team=monkey.getTeam(); System.out.println("getMonkey():executing team.getName()");
team.getName(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void loadMonkey(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
System.out.println("loadMonkey():executing session.load()");
Monkey monkey=(Monkey)session.load(Monkey.class,new Long(1)); System.out.println("loadMonkey():executing monkey.getName()");
monkey.getName(); System.out.println("loadMonkey():executing monkey.getTeam()");
Team team=monkey.getTeam(); System.out.println("loadMonkey():executing team.getName()");
team.getName(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void findAllMonkeys(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction(); System.out.println("findAllMonkeys():executing session.createQuery().list()");
List monkeyLists=session.createQuery("from Monkey as m ").list(); System.out.println("findAllMonkeys():executing monkeyLists.iterator()");
Iterator monkeyIterator=monkeyLists.iterator(); System.out.println("findAllMonkeys():iterating monkey1");
Monkey monkey1=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():iterating monkey2");
Monkey monkey2=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():iterating monkey3");
Monkey monkey3=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():iterating monkey4");
Monkey monkey4=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():iterating monkey5");
Monkey monkey5=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():iterating monkey6");
Monkey monkey6=(Monkey)monkeyIterator.next(); System.out.println("findAllMonkeys():executing monkey1.getTeam()");
Team team1=monkey1.getTeam(); System.out.println("findAllMonkeys():executing team1.getName()");
if(team1!=null) team1.getName(); System.out.println("findAllMonkeys():executing monkey2.getTeam()");
Team team2=monkey2.getTeam(); System.out.println("findAllMonkeys():executing team2.getName()");
if(team2!=null)team2.getName(); System.out.println("findAllMonkeys():executing monkey3.getTeam()");
Team team3=monkey3.getTeam(); System.out.println("findAllMonkeys():executing team3.getName()");
if(team3!=null)team3.getName(); System.out.println("findAllMonkeys():executing monkey4.getTeam()");
Team team4=monkey4.getTeam(); System.out.println("findAllMonkeys():executing team4.getName()");
if(team4!=null)team4.getName(); System.out.println("findAllMonkeys():executing monkey5.getTeam()");
Team team5=monkey5.getTeam(); System.out.println("findAllMonkeys():executing team5.getName()");
if(team5!=null)team5.getName(); System.out.println("findAllMonkeys():executing monkey6.getTeam()");
Team team6=monkey6.getTeam(); System.out.println("findAllMonkeys():executing team6.getName()");
if(team6!=null)team6.getName(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void findTeamLeftJoinMonkey(){
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
System.out.println("findTeamLeftJoinMonkey():executing session.createQuery().list()");
List teamLists=session
.createQuery("from Team as t left join fetch t.monkeys where t.id=1")
.list(); System.out.println("findTeamLeftJoinMonkey():executing teamLists.iterator()");
Iterator teamIterator=teamLists.iterator(); System.out.println("findTeamLeftJoinMonkey():iterating team");
Team team=(Team)teamIterator.next(); System.out.println("findTeamLeftJoinMonkey():executing team.getMonkeys().iterator()");
Iterator monkeyIterator=team.getMonkeys().iterator(); tx.commit(); }catch (RuntimeException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
} public void test(){
loadTeam();
getTeam();
findAllTeams(); loadMonkey();
getMonkey();
findAllMonkeys();
findTeamLeftJoinMonkey();
} public static void main(String args[]) throws Exception {
//new BusinessService().test();
new BusinessService().loadTeam();
sessionFactory.close();
}
}

6.

 <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/sampledb
</property>
<property name="connection.username">
root
</property>
<property name="connection.password">
1234
</property> <property name="show_sql">true</property> <mapping resource="mypack/Team.hbm.xml" />
<mapping resource="mypack/Monkey.hbm.xml" />
</session-factory>
</hibernate-configuration>

7.

Hibernate逍遥游记-第7章 Hibernate的检索策略和检索方式(<set lazy="false" fetch="join">、left join fetch、FetchMode.JOIN、)的更多相关文章

  1. Hibernate逍遥游记-第9章 Hibernate的映射类型

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  2. Hibernate逍遥游记-第5章映射一对多-01单向<many-to-one>、cascade="save-update"、lazy、TransientObjectException

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  3. Hibernate逍遥游记-第15章处理并发问题-003乐观锁

    1. 2. drop database if exists SAMPLEDB; create database SAMPLEDB; use SAMPLEDB; drop table if exists ...

  4. Hibernate逍遥游记-第15章处理并发问题-002悲观锁

    1. 2. hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mys ...

  5. Hibernate逍遥游记-第13章 映射实体关联关系-006双向多对多(分解为一对多)

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  6. Hibernate逍遥游记-第13章 映射实体关联关系-005双向多对多(使用组件类集合\<composite-element>\)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  7. Hibernate逍遥游记-第13章 映射实体关联关系-004双向多对多(inverse="true")

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  8. Hibernate逍遥游记-第13章 映射实体关联关系-003单向多对多

    0. 1. drop database if exists SAMPLEDB; create database SAMPLEDB; use SAMPLEDB; create table MONKEYS ...

  9. Hibernate逍遥游记-第13章 映射实体关联关系-002用主键映射一对一(<one-to-one constrained="true">、<generator class="foreign">)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

随机推荐

  1. Js操作Select大全(取值、设置选中)

    Js操作Select是很常见的,也是比较实用的. jquery操作select(取值,设置选中) 每一次操作select的时候,总是要出来翻一下资料,不如自己总结一下,以后就翻这里了. 比如<s ...

  2. 转载---linux运维相关

    前段时间,我在准备面试的时搜到的一套Linux运维工程师面试题,感觉比较全面,一直保存在草稿,刚在整理后台时翻了出来,干脆就发出来好了,以备不时之需. 1.linux如何挂在windows下的共享目录 ...

  3. snmptrap使用

    SNMP简单网络管理协议,其中其支持的一个命令snmptrap命令,用于模拟向管理机发送trap消息.   启动陷阱方法: snmptrapd -C -c /etc/snmp/snmptrapd.co ...

  4. C# 实现Oracle中的数据与Excel之间的转换

    最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然  private static readonly string conne ...

  5. 修改info

      新增Key: NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription ,这两个Key的值将分别用于描述应用程序 ...

  6. SQL Server备份事务日志结尾(Tail)

    原文:http://blog.csdn.net/tjvictor/article/details/5256906   事务日志结尾经常提交数据库未备份的事务日志内容.基本上,每一次你执行事务日志备份时 ...

  7. ApplicationContext

    参考网址: http://baike.baidu.com/link?url=IPzNiVScxSd6ijhDeCKKEuywPqisDeTfyYSQIPRZqLxy6onkPddfzyvcWQC6_M ...

  8. 【POJ】【1739】Tony's Tour

    插头DP 楼教主男人八题之一! 要求从左下角走到右下角的哈密顿路径数量. 啊嘞,我只会求哈密顿回路啊……这可怎么搞…… 容易想到:要是把起点和重点直接连上就变成一条回路了……那么我们就连一下~ 我们可 ...

  9. 无法从 ajax.googleapis.com 下载问题

    除FQ外的解决办法: 打开目录 C:\Windows\System32\drivers\etc,修改 hosts 文件,添加一行 : 127.0.0.1 ajax.googleapis.com 打开I ...

  10. uva 1368

    简单的贪心 ~ #include <cstdio> #include <cstdlib> #include <cmath> #include <map> ...