几个 sql 请求检索数据(休眠)
Several sql requests to retrieve data(hibernate)
对不起我的英语。开始接触javaee,不太明白如何进行一些操作。我有 2 tables categories 和 posts 。在 posts 中有字段 id、namecat 和 index。在 posts 中有字段 id、namePost、text、 idCat。如果 table category 索引 = 1。那么属于这个类别的所有帖子都必须将请求带到主页 page.In 它看起来像这样:
id = select * from category where index=1 //Here we learn how to id category i want displayed.
select * from post where idcat=id //and here all put
但我不知道如何在代码中做到这一点。在这里:
public Collection getPostFromCatId() {
List<Category> category= null;
Session session = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
SQLQuery q = (SQLQuery) session.createSQLQuery("
select * from category where index=1"); //get all category i want displayed. How to get here id and paste the following query?
q.addEntity(Category.class);
category= q.list();
} catch(Exception e) { outputError(e);
} finally{ closeSession(session); }
return category;
}
首先,我建议您在一个查询中而不是两个查询中检索数据,如下所示:
select p.* from post p
join category c on c.id=p.idCat and c.index=1
然后在休眠请求中你应该使用 Post 实体,因为你查询的是帖子,而不是类别
q.addEntity(Post.class);
对不起我的英语。开始接触javaee,不太明白如何进行一些操作。我有 2 tables categories 和 posts 。在 posts 中有字段 id、namecat 和 index。在 posts 中有字段 id、namePost、text、 idCat。如果 table category 索引 = 1。那么属于这个类别的所有帖子都必须将请求带到主页 page.In 它看起来像这样:
id = select * from category where index=1 //Here we learn how to id category i want displayed.
select * from post where idcat=id //and here all put
但我不知道如何在代码中做到这一点。在这里:
public Collection getPostFromCatId() {
List<Category> category= null;
Session session = null;
try{
session = HibernateUtil.getSessionFactory().openSession();
SQLQuery q = (SQLQuery) session.createSQLQuery("
select * from category where index=1"); //get all category i want displayed. How to get here id and paste the following query?
q.addEntity(Category.class);
category= q.list();
} catch(Exception e) { outputError(e);
} finally{ closeSession(session); }
return category;
}
首先,我建议您在一个查询中而不是两个查询中检索数据,如下所示:
select p.* from post p
join category c on c.id=p.idCat and c.index=1
然后在休眠请求中你应该使用 Post 实体,因为你查询的是帖子,而不是类别
q.addEntity(Post.class);