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

在Hibernate中创建动态sql时;我如何实现1 = 1

陶富
2023-03-14
问题内容

我正在使用hibernate模式。我需要在下面创建查询。subContest可能为null,在这种情况下,subContest_id=:cont不应将其作为where子句的一部分。在常规SQL中创建动态sql时;对于这种情况,我曾经做过,subContest_id = subContest_id ;但在以下情况下如何实现。在这里,如果我尝试这样做query.setParameter( "cont", "subContest_id " );,将给出异常,因为cont应该是id而不是字符串。

    Query query = getEntityManager().createQuery( "select * from Upload where moderated=:mod, subContest_id=:cont order by lastModifiedTime desc " );
    query.setParameter( "cont", subContest.getId() );

问题答案:

您可以尝试在hibernate中使用条件查询

Criteria criteria = session.createCriteria(Upload.class);

您可以添加where子句作为限制

Criteria criteria = session.createCriteria(Upload.class)
    .add(Restrictions.eq("mode", value));

在您的情况下,您想在添加限制之前检查null

if(subContest_id!=null){
        criteria.add(Expression.le("subContest_id",subContest_id));
    }

最后可以使用此命令

Criteria criteria = session.createCriteria(Upload.class)
    .addOrder( Order.desc("lastModifiedTime") );

请参考此处以了解有关如何使用条件查询的详细信息



 类似资料:
  • 问题内容: 我正在开发Web应用程序。我们在项目中将Hibernate用作ORM。实际上,我们的应用程序根据用户选择动态创建一些表。用户可以选择表名,列名,然后可以从csv文件导入数据。所以我的问题是:如何用Hibernate和Java对象映射此动态创建的表? 问题答案: 它可以动态完成,但有些混乱: 在建立SessionFactory之前,您需要动态更改Hibernate的Configurati

  • 问题内容: 我有3张桌子。团队,选项,选项团队。 团队拥有一个TeamId,名称 拥有Option拥有OptionId,OptionGroup OptionTeam拥有TeamId,OptionId,OptionGroup 我想获得一个团队列表,以及额外的列,这些列指示每个组有多少个选项连接到每个团队。这是通过上面的查询完成的,但是我想用表Option中的OptionGroup值替换4,5,6,1

  • 问题内容: 我有以下查询,该查询返回,商店编号及其区域以及2016年商店销售额的总和。 我将如何添加第四列,以总结每个商店所在区域的销售额。 每个区域有许多存储,因此,在相同区域中具有存储的每个ROW上,该值将相同。 希望我能解释清楚吗? 问题答案: 您可以使用窗口功能:

  • 问题内容: 我有类名称的列表,想动态创建它们的实例。例如: 如何在Python中动态创建该实例?谢谢! 问题答案: 这通常被称为反思或自省。找出类似的问题,这些问题可以回答您要尝试做的事情: Python是否具有与Java类forname等效的名称 您可以使用字符串实例化Python中的类吗

  • appI预览希望区分我通过单击按钮创建的edittext,并在特定的edittext上实现onclick侦听器 。

  • 问题内容: 我有以下表格示例。Thera可以是无限的分支机构和客户。我需要对该分支进行分组并计算他们的客户,然后用不同的列来显示它。 请注意,可以有无限的分支和客户,查询不仅必须在这种情况下有效。 在这种情况下,可接受的结果是: 示例SQL DATA 问题答案: 我认为写一个返回变量结构的流水线表函数虽然很复杂,但却是可能的。您的管道表函数将使用Oracle Data Cartridge接口和An