用hql查询view,但view中无主键,根据某列查询,返回多条记录,返回的结果记录条数正确,但数据全部重复与db查询不一致,解决方案:在映射文件.hbm.xml中定义为联合主键,即用<composite-id>
测试数据如下:
SPREAD_TABLE_CODE,PRICE_FROM,PRICE_TO,SPREAD_VAL
1 0.01 0.1 0.001 1 0.1 0.2 0.001 1 0.2 0.25 0.001 1 0.25 0.4 0.005 1 0.4 0.5 0.005
hbm配置文件(没有使用联合主键):
<hibernate-mapping package="com.shkco.adsr3.ogadapter.framework.vo"> <class name="OgSprd" table="VW_HKEX_SPREAD_TABLE"> <id name="sprdTableCode" column="SPREAD_TABLE_CODE" unsaved-value="null"> <generator class="assigned"/> </id> <property name="priceFrom" column="PRICE_FROM"/> <property name="priceTo" column="PRICE_TO"/> <property name="sprdVal" column="SPREAD_VAL"/> </class> </hibernate-mapping>
hql语句
List sprdList = session.createQuery( "from OgSprd sprd where sprd.sprdTableCode = :sprdTableCode order by sprd.priceTo asc") .setInteger("sprdTableCode", sprdTableCode) .list();
OgSprd -----》VW_HKEX_SPREAD_TABLE
解决方案:
<composite-id> <key-property name="sprdTableCode" column="SPREAD_TABLE_CODE"/> <key-property name="priceFrom" column="PRICE_FROM"/> <key-property name="priceTo" column="PRICE_TO"/> </composite-id>
相关推荐
在MySQL中创建`sc`表时,使用了`FOREIGN KEY`约束来定义`Sno`和`Cno`字段作为外键,引用`student`和`course`表的主键。 在数据层面,`student`和`course`表的初始数据已经在第6.1节给出,而`sc`表的数据在此处有所...
可以在Hibernate的映射文件中定义HQL查询: ```xml SELECT s FROM Student s WHERE s.sdept = :dept ``` 这样可以直接在代码中引用这些预定义的查询。 #### HQL的嵌套子查询 子查询是在另一个查询内部的查询...
在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细探讨Hibernate的注解方式以及HQL(Hibernate Query Language)查询...
在代码中,我们可以像操作普通实体一样保存和查询复合主键的实体。例如,添加新记录: ```java Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); AddressId ...
`<query>`标签定义了一个HQL查询,查询所有ID小于给定参数的`Student`对象。`<![CDATA[ ... ]]>`用于包裹HQL语句,防止特殊字符被解析。`<filter-def>`和`<filter-param>`定义了过滤器的参数,`myid`类型为整数。 ...
- ** 子查询 **:可以在HQL查询中嵌套其他查询。 - ** 排序与分组 **:`order by`和`group by`语句用于排序结果和按属性分组。 - ** 扩展查询 **:如`left outer join`、`right outer join`等,实现不同类型的连接。...
HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,与SQL类似,但更加面向对象,使得开发者在处理数据时更加便捷。 在学习HQL之前,首先需要理解Hibernate的核心概念。Hibernate通过映射...
- **解释**: 在映射文件中定义HQL查询,便于复用和维护。 #### 1.3 HQL的嵌套子查询 ##### 1.3.1 嵌套子查询的概念 - **解释**: 子查询是在另一个查询语句内部的查询,用于增强查询的灵活性和表达能力。 ##### ...
同时,Hibernate的Criteria API或HQL(Hibernate Query Language)可以帮助进行复杂的数据库查询,包括涉及多表连接的查询,这些查询可能涉及到联合主键和外键的使用。 综上所述,SSH2+JSON的结合提供了强大的后端...
- 注意HQL中的关联查询可能会返回大量数据,如果不加以限制,可能会消耗大量内存和计算资源。 - 需要关注级联操作对事务的影响,特别是在多线程环境下,确保事务的正确性和数据的一致性。 6. 示例分析 文档中...
例如,在示例代码中,通过`from tBookInfo book, BookSelection sel where book.id = sel.bookId`这样的HQL语句,实现了对“书籍”和“选择”两个表的联合查询,并根据主键与外键的关系进行了匹配。 #### 2. 构建...
在编写HQL或JPA Criteria查询时,复合主键的使用方式与其他字段并无太大区别,只需要按照其结构进行匹配即可。在一对多或多对一的关系映射中,如果关联的主键是复合的,需要在`@ManyToOne`或`@OneToMany`注解中指定`...
标题中的“从任意hive单表读取并计算数据写入任意mysql单表的hive工具”指的是一款专门用于数据迁移的工具,它能够帮助用户从Hive数据仓库中提取数据,进行必要的计算处理,然后将结果存储到MySQL数据库中。...
这一步会将HDFS上的文件数据映射到Hive的表分区中,便于后续的查询和分析。 接下来,通过编写HQL语句进行数据探索。我们可以计算薪资的平均值、中位数、标准差等统计指标,以理解整体薪资水平。此外,还可以按城市...
6. **HQL与元数据**:HQL查询语句首先会解析元数据,然后生成执行计划。例如,JOIN操作需要查询相关表的元数据以确定如何连接它们。 7. **元数据同步**:在分布式环境中,元数据的同步至关重要。当多台机器访问同一...
本文将重点讨论HQL在处理多对多关系映射以及多表查询中的应用。 在Hibernate中,多对多关系通过`<many-to-many>`标签来定义。当两个实体之间存在多对多关联时,通常需要一个额外的中间表来存储这两个实体的关联关系...
而投影(Projection)则用于定义查询结果的返回形式,如`Projections.count("id")`返回指定字段的数量。 9. **Query对象与命名查询** `Query`接口提供了执行HQL和SQL的能力,支持设置参数、分页、排序等功能。命名...
共享主键方式更为简洁,是两个表的主键相同,这里我们将主要讨论这种实现方式。 首先,我们需要定义两个实体类,例如`Person`和`Address`,它们之间存在一对一的关系。在`Person`类中,我们将包含一个`Address`类型...