很简单啊,在你的PaperSubject里分别给Paper和Subject都设置ManyToOne,单向关联就够了,查询的时候这样:
select subject from PaperSubject ps where ps.paper.paparid=?
你这样就查出了所有指定的subject 对象
select subject from PaperSubject ps where ps.paper.paparid=?
你这样就查出了所有指定的subject 对象
解决方案 »
- 什么时候就可以学SSH?
- 实体类中包含有自己类的集合, 利用parentid循环遍历装入以后 遍历往出取的时候里面却没东西...
- 用arcgis做过地图的进
- 最近要写一篇关于SSH的论文,请大家帮忙给点建议
- JSF下两个action之间如何传值?
- Ejb 奇怪的问题,高手请进
- 两个servlet之间的转换session属性的问题。高分求教。
- 关于struts在项目中实际的应用问题!请大家各书几见!
- 请教一个基本问题
- 新手提问
- hibernate中执行sqlQuery报错NonUniqueDiscoveredSqlAliasException
- 各位大神help me Missing required attribute "id"
Paper类:
package com.donald.entity;import java.util.HashSet;
import java.util.Set;import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Paper { private Integer id;
private String name;
private Set<Subject> subjects = new HashSet<Subject>();
@GeneratedValue
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany(fetch=FetchType.EAGER)
@JoinTable(name="pater_subject",
joinColumns={@JoinColumn(name="paperId")},
inverseJoinColumns={@JoinColumn(name="subjectId")}
)
public Set<Subject> getSubjects() {
return subjects;
}
public void setSubjects(Set<Subject> subjects) {
this.subjects = subjects;
}
}
Subject类:
package com.donald.entity;import java.util.HashSet;
import java.util.Set;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;@Entity
public class Subject { private Integer id;
private String name;
private Set<Paper> papers = new HashSet<Paper>();
@GeneratedValue
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany(mappedBy="subjects")
public Set<Paper> getPapers() {
return papers;
}
public void setPapers(Set<Paper> papers) {
this.papers = papers;
}
}
测试代码:
Session session = factory.openSession();
Paper p = (Paper)session.get(Paper.class, 1);
System.out.println(p.getSubjects());这样通过Paper的id号去查Paper对象,从Paper对象中取出Subject列表就可以了。