今天在用Hibernate对对象进行修改操作的时候报了这个错. 之前一直没什么错误,但是今天修改了一下表结构,增加了一个OneToMany的映射. 所以在我获取对象,重新set一个变量之后就报了这个错误了. Illegal attempt to associate a collection with two open sessions; nested exception is org.hibernate.HibernateException: Illegal attempt to associa…
今天我在一个操作两个数据库的SSH里 同时插入1条数据 报错 Illegal attempt to associate a collection with two open sessions 在这里有答案:http://fuaotech.iteye.com/blog/1298826 使用hibenate的merge方法代替save.update等方法. merge和saveOrUpdate方法区别在于:merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供…
在保存的时候如果使用以下方法就会报错 解决:使用merge()方法就可以解决异常... merge()方法的解释: 传入的参数在数据库中不存在的时候会添加一条数据,根据主键判断已存在的时候会更新这条数据,merge在执行更新之前会将两个标识符相同的对象进行合并,具体合并的方向是向数据库中存在的记录合并. 注意:merge方法在执行之前都回去缓存中找是不是有相应的记录,也就是会有一条select语句,执行改语句的目的是为了判断该对象是否被修改了.而update就不管这些,直接就一条update语句…
今天做项目的时候,有两个实体:款式.品牌两者关系是多对多的关联关系,实现的功能是:通过选择款式,显示出该款式的所有品牌.HQL语句如下: 运行时出现这个异常错误:org.hibernate.QueryException: illegal attempt to dereference collection . 通过查资料发现,在上面的HQL语句中,Brand的关联实体styles是一个Set集合,而不是一个Style实体.在 Hibernate3.2.2以前的版本,Hibernate会对关联实体自…
在<[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/10361281.html 在没有数据库修改权限时,像创建视图可以使用 hibernate 的应用程序视图. @org.hibernate.annotations.Immutable 不可变 @org.hibernate.annotations.Subselect(value="select u.id as id, concat(u.username, '_accoun…