`

Hql 也可以进行DML操作update delete insert

    博客分类:
  • SSH
 
阅读更多

原本以为HQL(Hibernate Query  Language) 只是一种查询语言,只能进行DDL操作,可是当我利用Hibernate的API进行update的时候,如果进行配置,默认就会更新整行!太不人道了!

  配置方法 :

     

在Annotation中 在属性GET方法上加上@Column(updatable=false)

view plaincopy to clipboardprint? 
@Column(updatable=false)  
public int getAge() {  
return age;  
} 
@Column(updatable=false) 
public int getAge() { 
return age; 
}

 

  

第2种方法··使用XML中的 dynamic-update="true"

view plaincopy to clipboardprint? 
<class name="com.sccin.entity.Student" table="student" dynamic-update="true"> 
<class name="com.sccin.entity.Student" table="student" dynamic-update="true">

 

  

第三种就是HQL方法了!

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

String hqlUpdate = "update Customer c set c.name = :newName where c.name = :oldName";
// or String hqlUpdate = "update Customer set name = :newName where name = :oldName";
int updatedEntities = s.createQuery( hqlUpdate )
        .setString( "newName", newName )
        .setString( "oldName", oldName )
        .executeUpdate();
tx.commit();
session.close();

 // insert只支持注意 ,只支持 INSERT INTO ... SELECT ... 形式,不支持 INSERT INTO ... VALUES ... 形式。

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String hqlInsert = "insert into DelinquentAccount (id, name) select c.id, c.name from Customer c where ...";
int createdEntities = s.createQuery( hqlInsert )
        .executeUpdate();
tx.commit();
session.close();

INSERT 语句的伪码是:INSERT INTO EntityName properties_list select_statement。
properties_list 和 SQL INSERT 语句中的字段定义(column speficiation)类似
不过它只能显示当前类有关的属性,不支持多态!

    

分享到:
评论

相关推荐

    hive 表 dml 操作.zip

    在Hive中,DML主要包括INSERT、UPDATE、DELETE以及SELECT等操作,但需要注意的是,由于Hive的设计目标和架构,UPDATE和DELETE操作与传统SQL有所差异。 1. **INSERT**:这是最基础的数据插入操作。Hive 支持 INSERT ...

    Hive.笔记.zip

    HQL(Hive Query Language)是Hive的SQL方言,支持基本的DML(数据操作语言)操作,如SELECT、INSERT、UPDATE和DELETE,以及DDL(数据定义语言)操作,如CREATE TABLE、ALTER TABLE和DROP TABLE。HQL还支持JOIN、...

    瀚高数据库hibernate方言 hgdb-hibernate-dialect

    这包括但不限于数据类型的映射、特殊函数的支持、事务隔离级别的设置以及DML语句(如INSERT、UPDATE、DELETE)的生成。 使用瀚高数据库Hibernate方言,开发者可以轻松地将现有的Hibernate项目迁移到瀚高数据库,...

    hive简单使用共13页.pdf.zip

    2. **HQL语言**:HQL是Hive提供的SQL方言,支持DML(Data Manipulation Language)操作,如SELECT、INSERT、UPDATE和DELETE,以及DDL(Data Definition Language)操作,如CREATE TABLE、ALTER TABLE和DROP TABLE。...

    HIVE从入门到精通

    7. **基本语法和操作语句**:包括DML(Data Manipulation Language)和DDL(Data Definition Language),如INSERT、UPDATE、DELETE、ALTER等。 8. **数据操作**:包括加载数据、删除数据、重命名表、导出数据等。 9...

    Hive数据仓库全流程开发

    - Hive也不支持`DELETE`语句,但可以使用`ALTER TABLE DROP PARTITION`来删除特定的分区数据。 #### 四、日常运维 - **表维护**:包括添加、删除分区等操作。 - **性能调优**:通过对Hive配置参数的调整,优化查询...

    spring_Framework+经典SQL语句大全+Hibernate中文API

    经典SQL语句大全通常包括DML(Data Manipulation Language)如SELECT、INSERT、UPDATE、DELETE,DDL(Data Definition Language)如CREATE、ALTER、DROP,以及事务控制、视图、索引等相关操作。掌握这些经典SQL语句...

    java数据库编程指南.rar

    理解DML(INSERT、UPDATE、DELETE)、DDL(CREATE、ALTER、DROP)以及查询语言(SELECT)是基础,而使用PreparedStatement可以防止SQL注入攻击。 4. **批处理** 对于大量数据操作,JDBC批处理可以显著提升性能。...

    Apache-Hive-Cookbook

    2. **HQL语法**:详细解析HQL,包括DML(数据操纵语言)如INSERT, UPDATE, DELETE操作,DDL(数据定义语言)如CREATE TABLE, DROP TABLE等,以及数据查询和聚合函数的使用。 3. **数据加载与导出**:讲解如何将数据...

    parastatement的方法

    前者用于返回结果集的查询,后者用于不返回结果的DML操作(如INSERT, UPDATE, DELETE): ```java pstmt.executeUpdate(); ``` 4. **关闭资源**: 最后,记得关闭PreparedStatement、ResultSet(如果有的话)和...

    Hibernate开发向导

    - **HQL语法用于INSERT**:虽然HQL主要用于查询,但也可以用于插入操作。 - **更多关于HQL的信息**:HQL提供了丰富的功能,包括嵌套查询、子查询等。 #### 五、锁定机制 - **乐观锁**:适用于读多写少的场景,...

    HIVE从入门到精通.pdf

    - **常用语句**:包括SELECT、INSERT、UPDATE、DELETE等SQL-like语句。 #### 十一、Hive操作语句 - **DDL语句**:包括CREATE TABLE、ALTER TABLE、DROP TABLE等。 - **DML语句**:包括INSERT INTO、LOAD DATA等。 ...

    hibernate中文参考文档

    - 自定义SQL:通过SQLInsert、SQLUpdate、SQLDelete等接口自定义DML操作。 九、最佳实践 1. 避免过多的HQL查询,尽可能使用 Criteria API 或 JPA 的 Criteria API。 2. 合理设计实体关系,避免循环引用导致的内存...

    亚太面试总结

    - **Delete**:属于DML(Data Manipulation Language)操作,逐行删除表中的记录。与Truncate不同,Delete操作会保留事务日志,以便在出现错误时回滚,因此执行速度相对较慢。 #### SQL算法题解析 1. **重复数据...

    hive大数据书籍

    4. **HQL语言**:详尽解析HQL(Hive Query Language),包括DML(数据操作语言)、DDL(数据定义语言)和DCL(数据控制语言)的操作,如SELECT、INSERT、UPDATE、DELETE、CREATE TABLE、ALTER TABLE等语句的使用。...

    Oracle工程师培训教程1

    此外,还会讲解如何执行DML(Data Manipulation Language)语句,如INSERT、UPDATE和DELETE,用于数据的增删改查。 XML(可扩展标记语言)和Ajax(异步JavaScript和XML)在现代Web应用中起着关键作用。XML常用于...

    Java数据库技术详解 DOC简版

    第3章 SQL语句基础之DML 3.1 SELECT语句基础 3.2 WHERE子句 3.3 ORDER BY子句 3.4 GROUP BY和HAVING子句 3.5 INSERT语句 3.6 UPDATE语句 3.7 DELETE语句 3.8 本章小结 第4章 PL/SQL 4.1 PL/SQL...

    Hibernate+Mysql使用实例

    3. **DML语句**: 插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)是MySQL的基本操作。 4. **索引**: 为了提高查询性能,可以为表的特定列创建索引。 5. **事务**: MySQL支持ACID(原子性、一致性...

    Hibernate Developer Guide

    - **4.4.1 HQL for UPDATE 和 DELETE** - 介绍如何使用 HQL 进行更新和删除操作。 - **4.4.2 HQL 语法用于 INSERT** - 描述如何使用 HQL 进行插入操作。 - **4.4.3 更多关于 HQL 的信息** - 提供更多关于 HQL 的...

    hibernate相关知识

    18. **SQL/DML生成**:Hibernate能自动生成INSERT、UPDATE、DELETE等SQL语句,简化数据库操作。 19. **查询优化**:包括查询计划、索引使用、避免N+1查询问题等。 20. **JPA集成**:Hibernate也可以作为Java ...

Global site tag (gtag.js) - Google Analytics