很简单啊,在你的PaperSubject里分别给Paper和Subject都设置ManyToOne,单向关联就够了,查询的时候这样:
select subject from PaperSubject ps where ps.paper.paparid=?
你这样就查出了所有指定的subject 对象
select subject from PaperSubject ps where ps.paper.paparid=?
你这样就查出了所有指定的subject 对象
解决方案 »
- JPA2 共享缓存出现问题 (二级缓存)
- iframe刷新问题
- 急,求java怎么读取ppt!
- 为什么我的struts2中的标签没有datepicker呢??
- 我在部署jboos-seam的项目中出现了这个异常 如何解决啊?
- jboss4.0.4的webconsole左边的applet显示不了怎么办?
- 为什么会有这样的错误 求高手教啊
- 作项目快四个月了,感觉内功不行,问同行怎样提升比较有效
- 有谁用过struts的分模块开发?
- Tomcat为什么不自己解压*.war?
- 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列表就可以了。