【问题标题】:Trying to create a hibernate query not sure if understanding correctly尝试创建休眠查询不确定是否正确理解
【发布时间】:2014-12-31 18:16:05
【问题描述】:

这是我正在处理的示例结构

class Item{
   Date date;
   MetaData metaData;
}

class MetaData{
   SysData sysData;
}

class SysData{
    Set<Category> categories;
    Set<Keyword> keywords;
}

在 UI 上,用户应该能够查看表格中的所有项目。他们应该能够过滤具有特定日期以及任意数量的关键字或类别的项目。

假设我创建了一个类别为“新”“男性”和关键字“快速”“漂亮”的项目。如果我想显示所有具有新类别的项目,我只需在下拉列表中选择新标签并单击查询。如何创建这种类型的查询?

这是我尝试过的

....

Criteria criteria = sess.createCriteria(Item.class, "item");
criteria.createAlias("metaData", "meta");
criteria.createAlias("meta.sysData", "sys");
criteria.add(Restrictions.in("sys.categories", myCategories);

我尝试了一些细微的变化,但至少我朝着正确的方向前进了吗?希望这是足够的信息。 SysData 是否与 Item 相关是否重要?

【问题讨论】:

标签: java hibernate


【解决方案1】:

试试这样:

Criteria criteria = sess.createCriteria(Item.class, "item");
criteria.createAlias("metaData", "meta");
criteria.createAlias("meta.sysData", "sys");
criteria.createAlias("sys.categories", "ctg");
criteria.add(Restrictions.in("ctg", myCategories);

【讨论】:

    猜你喜欢
    • 2021-10-29
    • 2016-11-20
    • 2015-03-12
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多