当前位置: 首页 > 面试题库 >

使用Hibernate的条件和投影来选择多个不同的列

马德厚
2023-03-14
问题内容

使用Hibernate的条件,我想执行以下操作:

select distinct uspscity, state from citycomplete where USPSCITY = 'HOUSTON'

我认为执行以下操作将产生想要的结果:

ProjectionList projList = new ProjectionList();
projList.add(Projections.distinct(Projections.property("id.state")));
projList.add(Projections.distinct(Projections.property("id.uspsCity")));
criteria.setProjection(projList);

但是,这实际上是执行类似以下操作:

select distinct uspscity, distinct state from citycomplete where USPSCITY = 'HOUSTON'

显然,这引发了错误。

除了不使用条件以外,还有解决方案吗?

谢谢,

布兰登


问题答案:
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("id.state"));
projList.add(Projections.property("id.uspsCity"));
criteria.setProjection(Projections.distinct(projList));


 类似资料:
  • 我正在使用Hibernate标准和投影来获得不同的值,如下所示: 我正在使用带有投影的结果转换器来获取不同值的列表

  • 我希望使用Hibernate Criteria API从MySQL日期字段中获取所有不同的年份。这是我要转换为条件的查询: 我试过: 但它返回一个错误 错误-无法解析属性:年(日期):ca.ogsl.biodity.hibernate.Observation 有人知道这是否可能,以及如何做到吗? 谢谢!!! 基文

  • 嗨,我想写一个查询使用条件:以下查询必须使用条件创建: “从S2中选择不同的(s2Taxper),其中s2Tc='601'和s2Txcd!=”” 提前谢谢

  • 问题内容: 好的,我想我可能会忽略一些显而易见的/简单的事情…但是我需要编写一个查询,该查询仅返回与同一列上的多个条件匹配的记录… 我的表是一个非常简单的链接设置,用于将标志应用于用户… 等等…在这种情况下,您会看到联系人99和100都被标记为“志愿者”和“已上传” … 我需要做的是返回仅与通过搜索表单输入的多个条件相匹配的那些contactid … contactid必须与所有选择的标志匹配…在

  • 好吧,我想我可能忽略了一些明显的/简单的事情...但我需要编写一个查询,该查询只返回同一列上符合多个条件的记录... 我的表是一个非常简单的链接设置,用于向用户应用标志... 等等。在这种情况下,您将看到联系人99和100都被标记为“志愿”和“上载”。 我需要能够做的是返回那些联系人ID只匹配通过搜索表单输入的多个条件...联系人ID必须匹配所有选择的标志...在我看来,SQL应该类似于: 但是.