我已经实现了 HibernateLoopDataSource,其中有构造函数,一个没有应用条件,一个有。看起来像下面这样
HibernateLoopDataSource.java
//code trimmed
HibernateLoopDataSource(Session hibernate, Class<?> typeOfClass){
this.hibernate = hibernate;
this.typeOfClass = typeOfClass;
}
HibernateLoopDataSource(Session hibernate, Class<?> typeOfClass, AppliedCriteria appliedCriteria){
this.hibernate = hibernate;
this.typeOfClass = typeOfClass;
}
AppliedCriteria.java //looks like following
它是一个接口(interface),仅包含一个方法
applyingCriteria(Criteria criteria);
和
GettingArticles.java
// code trimmed
public LoopDataSource getArticles(){
return new HibernateLoopDataSource(hibernate, Article.class, new AppliedCriteria(){
public void applyingCriteria(Criteria criteria){
criteria.add(Restrictions.eq("article.id", fullCommentPageListing.getArticle().getId()));}});}
但是,当我尝试初始化时,它不会报告任何内容,但它会在不应用条件的情况下循环。这个问题可能是什么原因,我被困了2个小时,这可能是一些微不足道的事情,我看不到它,因为我为此工作了8个小时。如有任何帮助,我们将不胜感激。
最佳答案
您无需对构造函数中的 criteria 参数执行任何操作:
HibernateLoopDataSource(Session hibernate,
Class<?> typeOfClass,
AppliedCriteria appliedCriteria){
this.hibernate = hibernate;
this.typeOfClass = typeOfClass;
// you should have this.appliedCriteria = appliedCriteria here
}
关于java - 循环遍历hibernate数据源问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12876512/