我有2个班级,他们之间有很多关系。我以“问题”和“标签”为例,以使情况更易于理解。
对于每个问题,您都有几个标签。与标签相同。
我想做的是,如果问题包含一个标签为“hibernate”,则获取所有问题(及其相应的标签)。
我最多可以使用多对多表中的SQLQuery并返回问题ID的列表。然后使用带有限制条件的条件并抓住所有问题。但这太笨拙了,我敢打赌,有更好的方法可以做到吗?
本质上,您需要创建一个别名并使用该别名来查询子集合,如下所示:
List questions = sess.createCriteria(Question.class)
.createAlias("Tags", "t")
.add( Restrictions.eq("t.name", "hibernate") )
.list();
我假设在这种情况下,您实际上没有代表“桥接”表到标签表的类,否则您需要创建2个别名,例如:
List questions = sess.createCriteria(Question.class)
.createAlias("QuestionTag", "qt")
.createAlias("qt.Tags", "t")
.add( Restrictions.eq("t.name", "hibernate") )
.list();
您可以从文档中找到更多信息:
http://docs.jboss.org/hibernate/core/3.6/reference/zh-
CN/html/querycriteria.html#querycriteria-
associations
我有一个班级评语: 保留comment类可以工作,但以下条件查询是有效的: 抛出org.hibernate.exception.DataException:未为参数%1指定值。 这是生成的查询: 选择this_.comment_id作为comment1_0_0_,this_.comment_id作为comment0_0_,commenttop2_.comment_id作为comment1_0_2_
问题内容: 考虑以下两个关系: 连接表ATag没有相应的实体类。现在,我想获取所有名为Tag1的Tag的Foo实例,是否可以仅使用Criteria? 子查询可能会有所帮助,但是,我无法为不存在的类ATag.class创建DetachedCriteria。 问题答案: 只是处理这个确切的问题。您在表中而不是对象中思考。只是参考,让Hibernate负责其余的工作: 如果您看到SQL Hibernat
我使用的是android(SQL)中的Room database,我有一个表,它将日期作为一列存储为2000-01-31格式的字符串。我想获得表中的所有条目,根据它们各自的月份。我想用 但这样,我将不得不为每个月编写单独的查询。我想获得的条目按月,并显示在我的android应用程序。
问题内容: 我有两张桌子。表和表。两者都有多对多的关系。 表A: 表B: 表AB: 我想要得到的名单,从表S =该有关系 的名单表第。 上表中的示例: 我想所有这些都表的关系小号 1和2,我得到那么3具有这两个表第。 如何使用SQL查询做到这一点? 问题答案: 如果要基于“不作为”列表(而不是“全部”作为)进行选择,请按照以下步骤操作: 用您的列表替换,并在having子句中替换为列表项的数量。
和我的Gradle构建文件: 如何删除警告?
我正在编写一些Selenium测试,我需要能够找到我已经找到的的祖先。 这是我正在尝试的,但没有任何结果 下面的图像显示了我选择的div,突出显示为深蓝色,并且显示了我想用箭头指向它的div。