java - HQL SELECT 子句不起作用

标签 java sql hibernate hql criteria

我有一个名为 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();

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

最佳答案

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

@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() {
    }
}

关于java - HQL SELECT 子句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29347676/

相关文章:

java - 用 Java 解析稍微复杂一点的 JSON

java - Java 中是否可以在没有反射的情况下进行运行时编译的类实例化和使用?

mysql - 标量子查询

SQL 标量函数的同义词

mysql - 如何解决MySQL由于hibernate envers审计而导致的死锁?

java - SolR 限制每个文件的点击次数

MYSQL - 如果不存在且没有明显的主键/唯一键,则插入表中

java - 是否可以在不定义任何关联的情况下映射实体中的字段?

java - Criteriabuilder 在两列上相等

tomcat - GC 参数 -XX :+ExplicitGCInvokesConcurrent cause tomcat timeout