首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hibernate和JSP进行内部连接

使用Hibernate和JSP进行内部连接
EN

Stack Overflow用户
提问于 2015-07-11 15:49:37
回答 1查看 526关注 0票数 0

我有三个表需要做一个内部连接,虽然我知道如何在SQL编辑器中这样做,我不知道它如何与Hibernate一起工作。

为了充分解释,我有一个:

  • 技能(所有问题都在那里)
  • 部分(标题,如第一部分,第二部分)
  • 技能(如主体、运动技能、语言等)

我有单独的道斯,每个都有这样的密码--这是我的技能刀:

代码语言:javascript
复制
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分段和标题)。

代码语言:javascript
复制
<% 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>
    <% } %>
EN

回答 1

Stack Overflow用户

发布于 2015-07-11 16:20:37

假设所有关系都是一对多的,并且实体对象如下所示:

代码语言:javascript
复制
@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和节对象:

代码语言:javascript
复制
List<SkillModel> skList = sDao.getSkill();
for(SkillModel model : skList) {
    Section s = model.getSection();
    SkillSet ss = s.getSkillSet();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31358933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档