您的位置:首页 > 其它

Hibernate关系映射(10)_多对多单向关联

2010-10-16 22:25 204 查看
一.Annotation方式:

 

Teacher与Student是多对多的关系。在Teacher持有Student的引用

/*
* Teacher.java
*/
@Entity
public class Teacher {
private int id;
private String name;
private Set<Student> students = new HashSet<Student>();

@ManyToMany
@JoinTable(name="t_s",
joinColumns=@JoinColumn(name="teacher_id"),  //指向teacher表的id
inverseJoinColumns=@JoinColumn(name="student_id") //指向student表的id
)
public Set<Student> getStudents() {
return students;
}
public void setStudents(Set<Student> students) {
this.students = students;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


/*
* Student.java
*/
@Entity
public class Student {
private int id;
private String name;

@Id
@GeneratedValue
public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}


[b]二.XML方式:(以上程序去掉注解)[/b]

在Teacher.hbm.xml中配置映射关系:

<hibernate-mapping>
<class name="com.szy.hibernate.model.Teacher">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>

<set name="students" table="t_s">
<key column="teacher_id"></key>
<many-to-many class="com.szy.hibernate.model.Student" column="student_id"/>
</set>

</class>
</hibernate-mapping>


在Student.hbm.xml中配置映射关系:

<hibernate-mapping>
<class name="com.szy.hibernate.model.Student">
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
</class>
</hibernate-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: