java - 循环遍历hibernate数据源问题

标签 java hibernate

我已经实现了 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/

相关文章:

java - 作为内部类的事件适配器

java - 如何返回数组列表作为对 Restful CXF Web 服务调用的响应

java - 处理完成后使用同一线程进行其他数据库操作

java - 发生异常时如何解锁hibernate中的记录?

mysql - OneToOne 即使在 Cascade All 上也无法删除

java - java中构造函数的困惑

java - 我们可以用这种形式表达Java日期 2016-02-02T10 :40:54. 264880 吗?

java - Spring Boot中bean的创建顺序

java - 将表转换为java实体

java - Spring 3.1 + Hibernate 4.1 Propagation.Supports 问题