【问题标题】:How to join tables using Hibernate Criteria Query如何使用 Hibernate Criteria Query 连接表
【发布时间】:2013-05-27 06:21:45
【问题描述】:

我有一个 School 表和 Classroom 表,其中包含 School 表的外键。我想获得容量为 40 且学校名称为“示例”的教室。这是我的通用 getAll 方法。我想修改这个方法来加入 2 个表。问题是方法仍然必须保持通用性。

public <T> List<T> getAll(T genericEntity) {
    Criteria criteria = getCurrentSession().createCriteria(genericEntity.getClass());
    criteria.add(Example.create(genericEntity));
    return criteria.list();
}

【问题讨论】:

  • 保持通用?,你想要一个用于 n 连接或特别是 2 连接的遗传函数?,参数呢?,你想为所有东西制作某种超级 dao 吗?

标签: database hibernate hibernate-criteria


【解决方案1】:

您应该将两个对象都添加到参数列表中:

public <T,U> List<T> getAll(T genericEntity1, U genericEntity2) {
    Criteria criteria = getCurrentSession()
        .createCriteria(genericEntity1.getClass()).add(Example.create(genericEntity1))
        .createCriteria(genericEntity2.getClass()).add(Example.create(genericEntity2));
    return criteria.list();
}

你可以这样称呼它:

getAll(classroom, school);

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2012-08-20
    • 2017-09-24
    • 2017-07-20
    • 2013-11-09
    • 2013-08-20
    相关资源
    最近更新 更多