0 0

hibernate sql union查询问题5

大家好,我在做单元测试时,用SQLQuery去查找,可以找到前一个union所搜索的表的记录,但是符合后一个union的条件的记录却没有查找到,不知道是什么原因,还忘遇上过同样问题的朋友可以指点一下迷津。
sql语句如下:
select * from ((select c.course_name, svc.creation_time from tbl_course c, tbl_chosen_service svc, tbl_service_mode sm where svc.service_mode_id = sm.service_mode_id and sm.service_type = 'ByCourse' and c.course_id = svc.course_id and svc.status = 'Paid' and svc.user_id = 0) union (select m.module_name, svc.creation_time from tbl_module m, tbl_chosen_service svc, tbl_service_mode sm where sm.service_type = 'ByClass' and svc.service_mode_id = sm.service_mode_id and svc.module_id = m.module_id and svc.status = 'Paid' and svc.user_id = 0) union (select membership_type, chosen_time from tbl_membership where deletion_tag != 'Y' and status = 'Available' and subscriber_id = 0) ) as service order by creation_time desc

补充下:这段代码在mysql下运行可以找到两个union所找到的记录
2008年7月03日 14:19

3个答案 按时间排序 按投票排序

0 0

你仔细看看:

order by creation_time desc

按照creation_time排序可是,最后一个union的视图,没有creation_time这个字段。
所以不显示。

2008年7月03日 20:58
0 0

我也没看出问题来,纯猜测:
Union会删除结果集中重复的行,难道发生重复了,感觉不太可能,如果不想删除重复的行可以用Union All

不过我感觉应该不会是重复的问题

2008年7月03日 15:28
0 0

只是将格式美化了一下. 问题不知道. 

select *
  from ((select c.course_name, svc.creation_time
           from tbl_course c, tbl_chosen_service svc, tbl_service_mode sm
          where svc.service_mode_id = sm.service_mode_id
            and sm.service_type = 'ByCourse'
            and c.course_id = svc.course_id
            and svc.status = 'Paid'
            and svc.user_id = 0) union
            
        (select m.module_name, svc.creation_time
           from tbl_module m, tbl_chosen_service svc, tbl_service_mode sm
          where sm.service_type = 'ByClass'
            and svc.service_mode_id = sm.service_mode_id
            and svc.module_id = m.module_id
            and svc.status = 'Paid'
            and svc.user_id = 0) union
            
        (select membership_type, chosen_time
           from tbl_membership
          where deletion_tag != 'Y'
            and status = 'Available'
            and subscriber_id = 0)) as service
            
 order by creation_time desc

2008年7月03日 14:50

相关推荐

    hibernate映射配置文件不支持union联合查询[参照].pdf

    在软件开发领域,尤其是涉及到关系型数据库管理和ORM(对象关系映射)框架如Hibernate时,开发者经常遇到各种查询问题。本案例中,开发者遇到了一个与Hibernate映射配置文件相关的异常,该异常涉及到不支持的“union...

    Hibernate+中文文档

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    Hibernate 课件_HQL

    - **定义**: HQL(Hibernate Query Language)是一种面向对象的查询语言,它的语法类似于SQL,但不同于直接操作数据库表,HQL操作的是持久化的Java对象。这意味着在编写查询时,可以使用Java对象模型中的类名和属性...

    hibernate查询语言hql

    Hibernate查询语言(HQL)是Java开发者用于操作Hibernate ORM框架中的对象关系映射数据的一种强大的查询工具。HQL是面向对象的,它允许开发者用类名和属性而不是表名和列名来编写查询,极大地提高了代码的可读性和可...

    hibernate3.2中文文档(chm格式)

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    HibernateAPI中文版.chm

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    web测试之安全测试方法:sql注入方法

    4. **UNION查询注入**:利用UNION操作符合并两个或更多查询的结果集,攻击者可以获取其他表的信息。 5. **第二秩序SQL注入**:当已注入的SQL代码在稍后的时间点被执行,比如存储过程或触发器中。 三、检测SQL注入的...

    常用Sql注入语句.

    - 使用ORM(对象关系映射)框架:如Hibernate,它可以自动处理SQL注入问题。 6. 检测和修复SQL注入: - 使用自动化工具,如Nessus、OpenVAS、Burp Suite等进行扫描。 - 定期审计代码,确保所有用户输入都被正确...

    Hibernate中文详细学习文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    Hibernate 中文 html 帮助文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9. 表达式 ...

    最全Hibernate 参考文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. select子句 14.5. 聚集函数 14.6. 多态查询 14.7. where子句 14.8. 表达式 14.9. order by子句 ...

    hibernate 经典题目 其中包括很多核心的题目

    描述 HQL 查询的元素是 `<query>` 或 `<sql-query>`。基于标注的映射,如 `@Entity`(实体类型)、`@Table`(实体对应的表)、`@Id`(主键)、`@Basic`(普通属性)、`@Column`(映射列)、`@OneToOne`(一对一)、`...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA TransactionManagers 9.1. 继承映射特性(Features of inheritance mappings) 16.1. 别名注射(alias injection names) 19.1. ...

    hibernate 体系结构与配置 参考文档(html)

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    Hibernate教程

    15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 15.7. where子句 15.8. 表达式 15.9. order by...

    hibernate集合的映射

    在Hibernate中,Set通常对应于数据库中的无序且不重复的记录集合,如UNION。例如,一个用户可以有多个电话号码,但每个电话号码都是唯一的。我们可以定义如下映射: ```xml ``` 这里的`<set>`元素定义了一个...

    SQL练习实战学习项目

    3. **SQL注入漏洞分类**:学习常见的注入类型,如基于错误的注入、基于时间的注入、UNION查询注入等,以及它们的利用方法。 4. **安全编码原则**:掌握预防SQL注入的最佳实践,如使用参数化查询(预编译语句)、...

    sql注入是一种代码注入技术.docx

    现代的ORM框架(如Hibernate、Entity Framework等)通常会自动处理SQL注入的问题,通过将对象模型与底层数据存储之间的转换抽象化,减少了直接编写SQL查询的需求。 #### 3. 使用存储过程 虽然存储过程并非完美的...

    SQL注入攻击.pdf

    5. **使用ORM(对象关系映射)**:如Hibernate、Entity Framework等,它们在一定程度上能自动处理SQL注入问题。 6. **代码审查和安全编码训练**:定期进行代码审计,确保开发人员了解和遵循安全编码最佳实践。 7. **...

Global site tag (gtag.js) - Google Analytics