我的数据库文件是hibernate自动生成的
我想通过文章编号 查找文章路径,但是我把文章的编号写成外键了实体类 具体如下private Integer articleImgId;
private ArticleInfo articleInfo;//文章的信息类,文章编号就在这个类中
private String articleImgPath;数据库表为int articleImgId
int articleId(外键)
varchar(100) articleImgPath
现在怎么来实现查询,能把那个方法详细的写出来么HQL或者Critarit都成!
我想通过文章编号 查找文章路径,但是我把文章的编号写成外键了实体类 具体如下private Integer articleImgId;
private ArticleInfo articleInfo;//文章的信息类,文章编号就在这个类中
private String articleImgPath;数据库表为int articleImgId
int articleId(外键)
varchar(100) articleImgPath
现在怎么来实现查询,能把那个方法详细的写出来么HQL或者Critarit都成!
private Integer articleImgId;
private ArticleInfo articleInfo;//文章的信息类,文章编号就在这个类中
private String articleImgPath;我想通过articleInfo 来查找articleImgPath
DAO 应该怎么写
ArticleInfo articleInfo=new ArticleInfo();
from table as t where t.articleInfo=:articleInfo;
q.setEntity("articleInfo", articleInfo);
查不出来啊你看我写的对不?
/*通过外键的文章编号查找图片路径,主要为文字文章,仅有一张图片*/
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;
}
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 "
不对
应该这样 ArticleImgInfo有这个Pojo吧?
"from ArticleImgInfo as a where a.articleInfo=:articleInfo";