Hibernate 配置文件 细节 cascade inverse

今天写东西,在配置关系时 ,随后就将cascade 配置, 而且配的值是false . 尼玛 ,结果很悲催,已启动就报错 ,弄得我云里雾里的,后来仔细检查发现原来是cascade在做该。现总结一下。顺便复习一下inverse .

1.cascade 层叠,有了它我们在操作删除和更新的时候会更加方便。只要在cascade的源头插入或者删除,所有cascade 的关系就会被动的插入或者删除。cascade 有一个值很重要,saveOrUpdate ,Hibernate根据这个属性值来判断一个对象时插入还是更新,如果这个对象的id 不存在那么就是insert ,否则就是update .

2.inverse 反转 。默认是false,就是说两端都来维护关系。这个意思就是说,如果一个student,teacher 表 。当一方在hbm的配置中set 中指定cascade 为true时,即表示关系由另一方来维护,换言之,甲方中的配置文件中设置cascade 为true,那么此时在甲方插入一条数据时不会影响乙方了。只有当乙方插入或删除数据时才会对甲方的进行操作。

所有在两方都配置cascade是不对的,一般情况下都将关系设置在多的一方。

3.cascade和inverse的区别

总结:cascade定义的是关系两端对象到对象的级联关系,而inverse定义的是关系和对象的级联关系。

两者的取值有:all  :sava+update+delete

none :所有的情况下都不进行级联操作。这是默认值

save-update:在执行sava /update/saveOrUpdate是进行级联操作

delete :在执行delete时执行级联操作。

Hibernate 配置文件 细节 cascade inverse

时间: 2024-12-17 06:08:24

Hibernate 配置文件 细节 cascade inverse的相关文章

Hibernate配置文件和映射元素解释

象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素. AD:干货来了,不要等!WOT2015 北京站演讲PPT开放下载! <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XM

Hibernate异常之cascade

1 org.hibernate.MappingException: Unsupported cascade style: delete-option 2 at org.hibernate.engine.spi.CascadeStyles.getCascadeStyle(CascadeStyles.java:257) 3 at org.hibernate.mapping.Property.getCascadeStyle(Property.java:140) 4 at org.hibernate.m

HIbernate 注解 mappedBy 与 inverse

hibernate中 配置文件中的inverse属性意思就是放弃控制权 ,主导权由对方控制,也就是说 我方进行的删除等操作不会影响到对方 即使设置了cascadeType.ALL 这个解释其实就是hibernate注解中的mappedBy ,他们是一个意思,只支持oneToMany OneToOne ManyToMany ,在一的一方设置, 其实 inverse 就是 mappedBy

hibernate配置文件分析

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.--><!--hibernate.sourceforge.ne

Hibernate配置文件——hibernate.cfg.xml

<?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"> <

5 -- Hibernate的基本用法 --4 深入Hibernate配置文件

Hibernate的持久化操作离不开SessionFactory对象,这个对象是整个数据库映射关系经过编译后的内存镜像,该对象的openSession()方法可打开Session对象.该对象通常由Configuration对象产生. 每个Hibernate配置文件对应一个Configuration对象.在极端的情况下,不使用任何配置文件,也可创建Configuration对象. 5.4.1 创建Configuration对象 5.4.2 hibernate.properties文件与hibern

hibernate配置文件详细解释

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.hibernate.sourceforge.net/hibernate-c

hibernate配置文件hibernate.cfg.xml的详细解释

<!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' encoding='gb2312'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type Definition 的缩写,即文档类型的定义,XML解析器使用DTD文档来检查XML文件的合法性.hibernate.sourceforge.net/hibernate-c

hibernate 1对多 inverse配置

在使用hibernate对1对多这种模型进行操作时,总发现多方的外键不能保存,一直为空,百度后发现是inverse的配置错误 根据自己的测试,如下表所示:(1方配置inverse,多方不配置) inverse setMain sql条数 数据库结果 true set 1条 正确 false set 2 正确 true 未操作 1 明细表缺少外键 false 未操作 2 正确 从上表中可以看出: 只有inverse==true,并且在多方未维护1方时,结果会出错. 其余条件下,均得到正确结果. 分