我的数据库文件是hibernate自动生成的
我想通过文章编号 查找文章路径,但是我把文章的编号写成外键了实体类 具体如下private Integer articleImgId;
private ArticleInfo articleInfo;//文章的信息类,文章编号就在这个类中
private String articleImgPath;数据库表为int articleImgId
int articleId(外键)
varchar(100) articleImgPath
现在怎么来实现查询,能把那个方法详细的写出来么HQL或者Critarit都成!

解决方案 »

  1.   

    我们都知道hibernate生成的实体类中把外键直接写成了 一个他所对应的实体类比如上边
    private Integer articleImgId;
    private ArticleInfo articleInfo;//文章的信息类,文章编号就在这个类中
    private String articleImgPath;我想通过articleInfo 来查找articleImgPath
    DAO 应该怎么写
      

  2.   

    hql语句
    ArticleInfo articleInfo=new  ArticleInfo();
    from table as t  where t.articleInfo=:articleInfo;
    q.setEntity("articleInfo", articleInfo);
      

  3.   


    查不出来啊你看我写的对不?
    /*通过外键的文章编号查找图片路径,主要为文字文章,仅有一张图片*/
    public ArticleImgInfo findByArticleIdForText(ArticleInfo articleInfo){
    String hql="from articleImgInfo as a  where a.articleInfo=:articleInfo";
    Query query=getSession().createQuery(hql);
    query.setEntity("articleInfo", articleInfo);
    List list=query.list();
    ArticleImgInfo articleImgInfo=(ArticleImgInfo)list.get(0);
    return articleImgInfo;
    }
      

  4.   

    from articleImgInfo   where articleInfo.id='编号'
      

  5.   


        String hql = "from 当前PO where articleInfo = ?";
        Query query = session.createQuery(hql);
        query.setParmeter(0,session.get(ArticleInfo.class,id));
        query.list();手写的 大概意思就是这样了 通过set往里放参数 不过你也可以简单点写 那就是把HQL语句改成
        String hql = "from 当前PO where articleInfo.id = 放你那个类别的ID "
      

  6.   


    不对
    应该这样  ArticleImgInfo有这个Pojo吧?
    "from ArticleImgInfo as a  where a.articleInfo=:articleInfo";