此错误的官方解释:1.当hql中不需要参数,而传递了参数导致,2.set参数时没有从0开始. 但此问题不属这两种. 检查导入的libraries无错误. 最后在网络搜索到:http://qihaihui.iteye.com/blog/228685,其中提示: 1. 如果PO类没有加Entity和Table的annotation,也会引发此错误, 2. 如果PO类没有放到spring配置的annotatedClasses里,也会提示此错误. 检查:applicationContext.xml中,没…
[hibernate]应用程序级别的视图 转载:https://www.cnblogs.com/yangchongxing/p/10361281.html 在没有数据库修改权限时,像创建视图可以使用 hibernate 的应用程序视图. @org.hibernate.annotations.Immutable 不可变 @org.hibernate.annotations.Subselect(value="select u.id as id, concat(u.username, '_accoun…
[hibernate]常用注解 转载:https://www.cnblogs.com/yangchongxing/p/10357118.html 目录 ======================================================== 1.@Entity 实体 2.@Table 表 3.@Id 和 @GeneratedValue 主键及生成策略 4.@Column 列 5.@DynamicInsert 和 @DynamicUpdate 动态字段 6.@Immutab…
在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的查询,同一时候指出hql能代替sql语句做不论什么事情.我原本以为hql语句的多表查询,要先对里面的实体做Java与xml的改动,事实上并不须要,相同是一句HQL语句就能搞定的事情.SQL的多表查询已经在<[Mysql]利用内连接与嵌套查询实现多表查询.主键.外键的基本概念>(点击打开链接)讲过.…
[hibernate]映射继承关系 转载:https://www.cnblogs.com/yangchongxing/p/10405151.html =========================================== 1.每个带有隐式多态的具体类使用一个表 2.每个带有联合的具体类使用一个表 3.每个类层次结构使用一个表 4.每个带有联结的子类使用一个表 =========================================== 1.每个带有隐式多态的具体类使用一…
[hibernate]自定义转换器 转载:https://www.cnblogs.com/yangchongxing/p/10398255.html 1.转换基本属性 package cn.ycx.study.hibernate.bean; import java.math.BigDecimal; import java.util.Currency; public class Money { public static final String SPLIT_SYMBOL = " ";…
[hibernate]存储图片 转载: package cn.ycx.study.hibernate.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Lob; @Entity @org.hibernate.annotations.DynamicInsert @org.hibe…
[hibernate]映射可嵌入式组件 转载:https://www.cnblogs.com/yangchongxing/p/10376452.html 可嵌入 Address 类,没有对应的数据表 package cn.ycx.study.hibernate.entity; import javax.persistence.Column; import javax.persistence.Embeddable; import javax.validation.constraints.NotNu…
[hibernate]重写物理表名和列明 转载:https://www.cnblogs.com/yangchongxing/p/10357123.html 假设你的数据库命名有这样的需求,表都以 ycx_ 开头,列都以 ycx_ 开头,该如何实现?首先想到的是用 @Entity(name="ycx_user") 或者 @Table(name="tb_user") 重写列明, 用 @Column(name="ycx_username") 重写列明,…
===================================================hibernate 4命名策略如下================================================= spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.DefaultNamingStrategy 有两种值可以配置分别为: 第一:org.hibernate.cfg.DefaultNamingStrate…
今天使用maven生成一个sping+springMVC+hibernate 的项目,报错如下: 错误提示呢:不能解释这个id的生成策略[uuid.string].就是uuid.string这个hibernate不支持. 奇怪了, 网上查看别人的问题,有提到这个东西: 1. Changes in version 3.0 beta 1 (21.12.2004) 2. * removed uuid.string and renamed uuid.hex to plain uuid 在hibernat…
按理说,假设Hibernate不依附于SSH执行,像<[Struts2+Hibernate3+Spring3]利用SSH整合,完毕打印用户表,用户登录.注冊.改动password系统>(点击打开链接)一样.把hibernate-distribution-3.6.10.Final解压之后.把根文件夹的hibernate3.jar,hibernate-distribution-3.6.0.Final\lib\required下的全部jar.hibernate-distribution-3.6.0.…
一.核心配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"…
Hibernate Save hibernate save()方法能够保存实体到数据库,正如方法名称save这个单词所表明的意思.我们能够在事务之外调用这个方法,这也是我不喜欢使用这个方法保存数据的原因.假如两个实体之间有关系(例如employee表和address表有一对一关系),如果在没有事务的情况下调用这个方法保存employee这个实体,除非调用flush()这个方法,否则仅仅employee实体会被保存. Employee.java 为了方便理解,简化Employee.java的属性.…
Hibernate缓冲按级别共分为两种,一级缓冲(Session)和二级缓冲(SessionFactory),有的也说是三种,还有一种是查询缓冲,当然,查询缓冲是依托于二级缓冲. ok,什么是缓冲? 在内存里开辟一块空间把本来应该存在硬盘里面的数据,存在这个空间里面,将来,需要这块数据的时候直接在内存中获取.这个就可以简单理解为缓冲. 一级缓冲 什么是一级缓冲,一级缓冲是Hibernate默认的,不用管它. 比如下面这段代码, 1 2 3 4 5 6 7 8 9 10 11 @Test     …
所需工具与前文一致! 第一部分内容:基本类型的一对多(one to many) 以部门表与员工表为例: 目录结构: hibernate.cfg.xml内容 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "h…
所需工具: ide:eclipse or myeclipse jdk:1.7 jar包:hibernate-distribution-3.6.0.Final 和对应mysql的驱动类(对应jar包如图) 数据库:mysql 要支持事务的版本,命令行下或用navicat生成如图所示表 项目目录结构如下: 其中cn.kiwifly.entity为实体类包,cn.kiwifly.dao为Dao层包,cn.kiwifly.utils为工具包,cn.kiwifly.test为测试包 学习目标:完成hibe…
概述 Hibernate简介 1.2.安装hibernate tools插件 1.3.HelloWorld示例 1.3.1.加入jar包 1.3.2.开发步骤 hibernate generator class="native" 惹的祸:http://blog.csdn.net/yufaw/article/details/7680403 1.3.3.helloworld详解…
实体Entity中通过@Enumerated标注枚举类型,例如将CustomerEO实体中增加一个CustomerType类型的枚举型属性,标注实体后的代码如下所示. @Entity @Table(name = "customer") public class CustomerEO implements java.io.Serializable { -- private CustomerType type; @Enumerated(EnumType.STRING) public Cus…
org.springframework.data.jpa.domain.support.AuditingEntityListener Auditing: 审计:查账Hades:Hades是一个开源库,基于JPA和Spring构建,通过减少开发工作量显著的改进了数据访问层的实现. 在系统中记录实体类的创建者.修改者和相关日期等信息是一个很常见的需求.Hades提供了监听器EntityListener,可以帮你透明的实现这些功能.要启用Hades的审计功能,只需要在orm.xml文件中定义Audit…
一.数据模型 1.学生信息模型(编号.名称.身份信息) public class Student implements java.io.Serializable{ private static final long serialVersionUID = 1L; private Integer sid; private String sname; private IdClass pid; public Integer getSid() { return sid; } public void set…
一.Hibernate三种状态 (1).瞬时状态(只存在Hibernate容器中,数据库中没有与之对应的记录) A.通过new实例化的实体,在没有执行save方法时. B.持久状态调用delete方法后. (2).持久状态(数据库中已近存在,而且当前页存在Hibernate容器中) A.瞬时状态调用save方法后,没有提交事务的实体. B.通过hibernate查询进入Hibernate容器中的实体. (3).脱管状态/游离状态(当实体脱离hibernate容器管理,数据库有与之对应的记录) A…
使用hibernate进行一对多操作的时候,普遍使用HashSet进行操作.但是HashSet是无序集合,对此可以使用TreeSet进行排序. 1.将HashSet改为TreeSet private Set<EbgRequmentItem> items = new HashSet<EbgRequmentItem>(); --> private Set<EbgRequmentItem> items = new TreeSet<EbgRequmentItem&g…
今天在用Hibernate对对象进行修改操作的时候报了这个错. 之前一直没什么错误,但是今天修改了一下表结构,增加了一个OneToMany的映射. 所以在我获取对象,重新set一个变量之后就报了这个错误了. Illegal attempt to associate a collection with two open sessions; nested exception is org.hibernate.HibernateException: Illegal attempt to associa…
报错原因:jdk1.7不支持 hibernate的最新版本5.2.0,把hibernate的版本换成5.1.3或更早的版本. 补充:mysql-connector-java-6.0.x也不被hibernate5.2.0支持,mysql驱动包换成5.1.40或更早的版本. 我的项目(已测试): jdk1.7 + hibernate5.1.3 + mysql 5.1.40 预估搭配(未测试):jdk1.8 + hibernate5.2.0 + mysql 5.2.0…
使用hibernate的过程中出现了这个问题,查询语句如下: String hql = "select new GoodsBean(id, name, price, proPic, sales, updatetime, marketReferencePrice) from GoodsBean where bigTypeId = ? order by views desc"; Query query = this.getCurrentSession().createQuery(hql);…
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic    示例:    //根据birth计算出age属性    @Transient    public int getAge() {    return getYear(new Date()) - getYear(birth);    } 这个东东还是挺有用的.Hibernate的一个注释 @Tr…
Hibernate中的缓存一共有三种,一级缓存.二级缓存.查询缓存.缓存除了使用Hibernate自带的缓存,还可以使用redis进行缓存,或是MongoDB进行缓存. 所使用的Demo: User.java文件 package cn.test.bean; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.T…
1 简介 在使用一些查询方法时,方法执行了,但是并没有立刻发送SQL语句查询数据库.而是在访问对象的getXxx方法时候才触发SQL执行加载对象数据.这种机制就称为延迟加载. 2 优点 延迟加载主要是为后续关联映射提供,避免查找无用的关联数据.可以降低数据库操作的并发率,提升内存资源使用率. 3 使用 在struts2中,session.load()/query.iterator()和关联映射都使用的这种机制. 下面笔者使用session.load()方法举例: hibernate.cfg.xm…
因为Hibernate是ORM(对象关系映射)的,所以程序员是不需要写Sql语句的.所有的操作都是通过对对象的操作. 1,原生Session 事务管理 Transaction tx = session.beginTransaction();//开启事务 tx.commit();//提交事务 查询数据 查询user表中主键值为1的数据 Object user = session.get(User.class, 1); 插入数据 向数据表中插入一条新数据 User user=new User();…