Hibernate 之List ,Bag,Map三种映射文件详解 (四)

2014-11-24 11:03:53 · 作者: · 浏览: 2
ame) {
this.name = name;
}




}

public class Club {

private String id;

private String name;

private Map field = new HashMap();

private Map team = new HashMap();


public Map getField() {
return field;
}

public void setField(Map field) {
this.field = field;
}

public Map getTeam() {
return team;
}

public void setTeam(Map team) {
this.team = team;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}




}


[java]
package com.example.domain;

public class Player {

private String id;

private String number;

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

private Club club;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public Club getClub() {
return club;
}

public void setClub(Club club) {
this.club = club;
}







}

package com.example.domain;

public class Player {

private String id;

private String number;

private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

private Club club;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getNumber() {
return number;
}

public void setNumber(String number) {
this.number = number;
}

public Club getClub() {
return club;
}

public void setClub(Club club) {
this.club = club;
}







}

下面是两个hbm.xml文件
[html]
< xml version="1.0" encoding="UTF-8" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">


















< xml version="1.0" encoding="UTF-8" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
















那么在map当中,value为一个实体类,那么这种映射本质上还是一种一对多的关系,所以使用了one-to-many标签。


[html]
< xml version="1.0" encoding="UTF-8" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">









< xml version="1.0" encoding="UTF-8" >
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">









那么在另一端相对应的就是many-to-one.


下面是测试代码,


[java]
import java.util.HashSet;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.example.domain.Club;
import com.example.domain.IdCard;
import com.example.domain.Player;
import com.example.domain.Student;
import com.example.domain.Team;
import com.example.util.HibernateSessionFactory;

public class Test {

public static void main(String args[])
{

Club club = new Club();
club.setName("Heat");


Player LBJ = new Player();
LBJ.setClub(club);
LBJ.setName("LBJ");

cl