hibernate的查询死锁

  今天做了一个操作,先用hibernate进行查询,在查询集合list的循环中又执行 按上一个查询结果做条件的一个更新操作,我先是用Query加载sql语句,再用Query.executeUpdate去执行,结果抛除异常并且进入死锁状态,查了很多资料,有点收获. Hibernate在 update持久对象的时候,产生的sql语句是把所有的属性统统set一遍,这样会造成update操作效率很低。Hibernate默认情况下总是在初始化的时候静态生成sql语句,…

Hibernate及Mysql到Java基本类型的映射

出处http://blog.csdn.net/whucyl/article/details/7851378 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N CHAR java.lang.String 1   BLOB L+N BLOB java.lang.byte[] -4   TEXT 65535 VARCHAR java.lang.String -1               INTEGER 4 INTEGER UNSIGNED java.lang.Long 4   TINYINT 3 TINYINT UNSIGNED java.l…

SSH整合——spring跟hibernate兼容问题

BUG描述: Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundError: org/hibernate/engine/transaction/spi/TransactionContext 解决过程: 发现可能是版本兼容问题,我用的是spring4.0.3,hibernate是5.2.6,在配置事务管理的时候需要引入 org.springframework.orm.hibernate5.HibernateTransactionManager,一开始我引入的是4,即 org.springframe…

Hibernate如何自动生成表

hibernate自动生成表有两种方法:1.直接写代码,通过方法来创建数据库表。2.通过 hibernate.cfg.xml配置标签来创建数据表。下面依次实现:1.直接写代码,通过方法来创建数据库表。建立一个测试类,来测试是否能够生成表。不过在执行该类之前,需要手动在数据库中建立相应的数据库,数据库的名称需要和配置文件保持一致。hibernate只会自动建表,不会自动建库。代码如下:package org.test.demo;import…

Hibernate并发控制乐观锁实现——Version

乐观并发控制,可以有三种方式。 1,Version版本号 2,时间戳 3,自动版本控制。 这里不建议在新的应用程序中定义没有版本或者时间戳列的版本控制:它更慢,更复杂,如果你正在使用脱管对象,它则不会生效。 以下信息来自 : http://esffor.javaeye.com/blog/168243 通过在表中及POJO中增加一个version字段来表示记录的版本,来达到多用户同时更改一条数据的冲突 数据库脚本:  create table studentV…

Hibernate连表查询

1.整体架构     2.所需要的jar包     3.hibernate.cfg.xml文件   <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration>     <session-factory>         <!-- Database con…

hibernate日志文件配置

  日志配置:hibernate采用Apache common logging,并结合Apache log4j作为日志输出组件。hibernate发行包的etc目录下附带了一个实例配置的log4j.properties,将这个文件复制到ClassPath中即可,对于eclipse而言,可以将log4j.properties放在源码目录下以便于修改。内容:### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=…

hibernate saveOrUpdate方法和merge的区别

首先 saveOrUpdate返回void 也就是什么都不返回 而merge会返回一个对象 其次 saveOrUpdate的做法是:将对象持久化,如果此时session缓存中存在相同id的对象,则报错;否则如果没有id就保存;有id的话,能找到这个id的对象就修改或者找不到就保存 merge 在执行session.merge(a)代码后,a对象仍然不是持久化状态,a对象仍然不会被关联到Session上 而update会持久化对象 说白了:merge()用法替代了hiberna…

如何获得Hibernate的数据库底层异常

  /**   * 场所类型的增加或修改   * @param oldPlaceTypeCode -1表示是添加,其他表示修改   * @param newDdPlacetype  -变更的场所类型对象   * @return   */  public PageQueryOutput saveDdPlacetype(Long oldPlaceTypeCode,DdPlacetype newDdPlacetype){   PageQueryOutput output=new PageQueryOutput();          try {        DdPlacetype pt=this.orgLogic.saveDdPlacetype(oldPlaceTypeCo…

构建基于 JPA 的 Hibernate 环境

——跟我一起学 Hibernate 系列(2) 1. 主要的开发环境 Maven 3.3.9 idea 14.1.1 Bitronix 2.1.3(JTA 事务) 2. pom.xml 所有的依赖包由 Maven 统一管理 跟我一起学 Hibernate 系列中所有的特性展示,都基于这次构建的开发环境 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source>…

Hibernate注解,带实例详细讲解

Hibernate注解 Hibernate类级别注解 Hibernate属性级别注解 Hibernate关系映射级别注解 一、Hibernate类级别注解 @Entity //指定一个类是标准的实体类(要映射到数据表) @Embeddable //表示此类并不是一个实体类(创建表格)而是一个可以嵌入到另一个实体类中作为属性存在(组件属性),只要一个类添加上@Embeddable注解则表示此类是一个切入类,此类只是抽取出属性了不创建表。 @Table 1、@Entity 作用:指…

Hibernate 时间查询错误

1、错误Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff] 在hibernate连接数据查询的时候,Date类型的数据在查询的时候需要转为Timestamp类型。 2、错误’0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp 出现这种错误是因为数据库中对应的字段值为空 3、String 类型转为Date类型 Date beginDate = sdf.parse(“2017-08-01 00:30:00”); SimpleDateFormat format = new S…

Hibernate高级查询

@Test DDL创建表 hibernate标准化对象查询(QBC) 也即是把查询条件封装成一个对象,它支持运行时动态生成查询语句 Criteria接口 存放查询条件的容器 Criteria criteria=session.createCriteria(Class persiistentClass); //获取所有数据 criteria.list() //条件查询---》Ctitertion接口的实现类Restrictions Critertion接口 代表一个查询条件,可以通过他的实现类Restrictions类来产生查询条件,并…

简单的Hibernate使用入门

hibernate所需要的jardao层User.hbm.xml       </hibernate-mapping>死记硬背的配置文件名字<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!--  #hibernate.dialect org.hibernate.dialect.MySQLDialect …

理解hibernate hibernate工作原理

      Hibernate是一个开放源代码的对象关系映射框架。       Hibernate对JDBC进行了非常轻量级的对象封装,它将POJO(Plain Ordinary Java Object:简单的java对象,实际就是普通JavaBean)与数据库表建立映射关系,是一个全自动的orm(Object Relational Mapping:对象关系映射)框架,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。这样就不需要和复杂的sql打交道,只要像操作对象…