我有三个表需要做一个内部连接,虽然我知道如何在SQL编辑器中这样做,我不知道它如何与Hibernate一起工作。
为了充分解释,我有一个:
我有单独的道斯,每个都有这样的密码--这是我的技能刀:
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import softdev.asese.models.SkillModel;
import softdev.asese.utils.HibernateUtil;
public class SkillDao
{
public List<SkillModel> getSkill() {
List<SkillModel> list = new ArrayList<SkillModel>();
Session session = HibernateUtil.openSession();
Transaction tx = null;
try {
tx = session.getTransaction();
tx.begin();
list = session.createQuery("from SkillModel").list();
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
session.close();
}
return list;
}
}我的章节Dao和Skillset与此完全相同,当然也有不同的查询和命名。它们都是相互联系和相互引用的。技能集连接到科,科连接到技能。我也有一个评估的技能是联系在一起的。这将是考卷。我需要的是正确地显示每一个标题、部分和问题,并与这道刀保持一致。到目前为止,我还没有成功,只是通过这个技能加载了所有的问题(w/o分段和标题)。
<% SkillDao sDao = new SkillDao();
List<SkillModel> skList = sDao.getSkill();
%>
<tbody>
<% for(SkillModel s : skList) { %>
<tr>
<td><%= s.getSkillName() %><br><br>
<input type="radio" name="ans" value="Independent">Independent<br>
<input type="radio" name="ans" value="Emerging">Emerging<br>
<input type="radio" name="ans" value="No response">No Response<br><br><br></td>
</tr>
<% } %>发布于 2015-07-11 16:20:37
假设所有关系都是一对多的,并且实体对象如下所示:
@Entity
public class SkillSet {
@OneToMany
private List<Section> sections;
public List<Section> getSections() { return sections; }
}
@Entity
public class Section {
@OneToMany
private List<SkillModel> skillModels;
@ManyToOne
private SkillSet skillSet;
public SkillSet getSkillSet() { return skillSet; }
}
@Entity
public class SkillModel {
@ManyToOne
private Section section;
public Section getSection() { return section; }
}然后,可以按以下方式获得SkillSet和节对象:
List<SkillModel> skList = sDao.getSkill();
for(SkillModel model : skList) {
Section s = model.getSection();
SkillSet ss = s.getSkillSet();
}https://stackoverflow.com/questions/31358933
复制相似问题