【问题标题】:HQL SELECT clause not workingHQL SELECT 子句不起作用
【发布时间】:2015-03-30 13:36:36
【问题描述】:

我有一个名为 CategorySet 的实体。

@Entity
@Table(name = "CATEGORY_SET")
public class CategorySet {
    @Id
    @Column(name = "ID")
    @GeneratedValue
    private Integer id;
@OneToOne
@JoinColumn(name = "ID")
private Category parent;

@OneToOne
@JoinColumn(name = "ID")
private Category child;

public CategorySet(Category parent, Category child) {
    this.parent = parent;
    this.child = child;
}

public CategorySet() {
}
}

在我的 DaoImpl 中,我只从实体中获取子列。 但它返回的是空列表。

String innerQueryString = "select CS.child FROM CategorySet CS";
Query innerQuery = sessionFactory.getCurrentSession().createQuery(innerQueryString);
List list = innerQuery.list();

我也使用了标准。它抛出 ArrayIndexOutOfBoundException

    Criteria  criteria  =sessionFactory.getCurrentSession().createCriteria(CategorySet.class);
    criteria.setProjection(Projections.property("child")); //Projections.property is used to retrieve specific columns

    List students = criteria.list();

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java sql hibernate hql criteria


    【解决方案1】:

    通过父子连接列来修复它。

    @Entity
    @Table(name = "CATEGORY_SET")
    public class CategorySet {
        @Id
        @Column(name = "ID")
        @GeneratedValue
        private Integer id;
    
        @OneToOne
        @JoinColumn(name = "PARENT")
        private Category parent;
    
        @OneToOne
        @JoinColumn(name = "CHILD")
        private Category child;
    
        public CategorySet(Category parent, Category child) {
            this.parent = parent;
            this.child = child;
        }
    
        public CategorySet() {
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 1970-01-01
      • 2016-03-02
      • 2016-08-21
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多