检索数据的几个sql请求(休眠)
Posted
技术标签:
【中文标题】检索数据的几个sql请求(休眠)【英文标题】:Several sql requests to retrieve data(hibernate) 【发布时间】:2015-05-17 02:06:54 【问题描述】:对不起我的英语。开始和javaee打交道,不太明白怎么做一些操作。我有 2 个表 categories 和 posts 。在 posts 中有字段 id、namecat和索引。在 posts 中有字段 id、namePost、text、idCat。如果表category index = 1。那么所有属于这个category的帖子都必须带到首页。在请求中它看起来像这样:
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;
【问题讨论】:
好的,我不确定我是否理解,但如果我理解正确,您希望获取所有 post.idCat 等于类别表中的值的帖子。如果是这种情况,你想做一个join。可以找到join的解释here 【参考方案1】:首先,我建议您在一个查询而不是两个查询中检索数据,如下所示:
select p.* from post p
join category c on c.id=p.idCat and c.index=1
然后在休眠请求中,您应该使用 Post 实体,因为您查询的是帖子,而不是类别
q.addEntity(Post.class);
【讨论】:
以上是关于检索数据的几个sql请求(休眠)的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2005数据库检索时,出现无法为此请求检索数据的问题
Spring MVC 学习笔记 --- [SpringMVC的几个注解标签说明,获取请求数据,springmvc提供的中文乱码过滤配置]