`
wfzhanga
  • 浏览: 70265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate相关关键字段配置

阅读更多
代码     
Parent parent = (Parent) session.load(Parent.class, pid);    
session.delete(parent);    
   
1. 爸爸那边设置了cascade=all和inverse=true     
a. delete from children     
b. delete from parent    
   
2. 爸爸那边设置了cascade=all,没有设inverse=true     
a. update children set parent_id=null where parent_id=?     
b. delete from children     
c. delete from parent    
   
因为此时inverse=false,所以爸爸要负责维护relationship,所以它要去把children中的连接信息都清空。但是,如果children的parent_id的constraint设置的是not-null的话,那么很不幸,hibernate执行到2.a就会throw exception了。    
   
如果你要问,这个inverse=true到底是在源代码中的哪儿判断的呀?请看代码:     
   
   
代码    
     
......    
   
SessionImpl.flush();    
   
SessionImpl.execute();    
   
SessionImpl.executeAll(collectionRemovals);    
    executable.execute();    
   
ScheduledCollectionRemove.execute();    
    getPersister().remove( getId(), getSession() );    
   
OneToManyPersister(即AbstractCollectionPersister).remove();    
    if ( !isInverse ) {    
        PreparedStatement st = session.getBatcher().prepareBatchStatement( getSQLDeleteString() );    
    }    
   
OneToManyPersister.getSQLDeleteString();    
    return "update children set parent_id=null where parent_id=?";    
   
......    
   



-------------------------------------------------------------------- 
hibernate中inverse的用法 收藏 
一、Inverse是hibernate双向关系中的基本概念。inverse的真正作用就是指定由哪一方来维护之间的关联关系。当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之间的关联关系,说白了就是hibernate如何生成Sql来维护关联的记录!

二、Inverse和Cascade的比较 

Inverse:负责控制关系,默认为false,也就是关系的两端都能控制,但这样会造成一些问题,更新的时候会因为两端都控制关系,于是重复更新。一般来说有一端要设为true。 
Cascade:负责控制关联对象的级联操作,包括更新、删除等,也就是说对一个对象进行更新、删除时,其它对象也受影响,比如我删除一个对象,那么跟它是多对一关系的对象也全部被删除。 
举例说明区别:删除“一”那一端一个对象O的时候,如果“多”的那一端的Inverse设为true,则把“多”的那一端所有与O相关联的对象外键清空;如果“多”的那一端的Cascade设为Delete,则把“多”的那一端所有与O相关联的对象全部删除。

 

 

 

 

 

 

通过将<set>元素的lazy属性设置为true来开启集合类型的延迟加载特性


这里我们应用了<cache usage=”read-only”/>配置,如果采用这种策略来配置集合类型,Hibernate将只会对数据索引进行缓存,而不会对集合中的实体对象进行缓存。


<hibernate-mapping>

    <class name=”com.neusoft.entity.User” table=”user”>

…..

<set name=”addresses” table=”address” lazy=”true” inverse=”true”>

<cache usage=”read-write”/>

<key column=”user_id”/>

<one-to-many class=”com.neusoft.entity.Arrderss”/>

</set>

    </class>

</hibernate-mapping>

 

企业管理器
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
                      
--确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排为一天一次


然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

 

 

 

 

 

分享到:
评论

相关推荐

    spring+hibernate 解决大字段(clob)

    这里的关键在于配置了`lobHandler` Bean来处理CLOB和BLOB类型的字段。 ##### 2. Hibernate SessionFactory配置 在Hibernate的`SessionFactory`配置中,需要指定`lobHandler` Bean来处理CLOB和BLOB字段: ```xml ...

    mysql 让hibernate支持text字段的方言

    以下是一些关键步骤,以使Hibernate支持MySQL的`TEXT`字段: 1. **创建或扩展方言类**: - 如果现有的`MYSQLDialect`类不直接支持`TEXT`字段,你可以选择扩展它,添加对`TEXT`字段的支持。在子类中,你可以重写`...

    hibernateJar包及配置文件

    总结,Hibernate作为一个强大的ORM框架,极大地简化了Java开发者与数据库的交互,而其配置文件和jar包是实现这一目标的关键组成部分。理解和掌握Hibernate的配置、映射、工作流程及其优化技巧,对于提升Java应用的...

    用Hibernate实现领域对象的自定义字段

    4. **配置SessionFactory**:在Hibernate配置文件(hibernate.cfg.xml)中,添加自定义类型的相关配置。 ```xml &lt;hibernate-configuration&gt; ... &lt;!-- 添加自定义类型 --&gt; ... &lt;/hibernate-configuration...

    Hibernate自动生成配置文件

    6. **用Hibernate自动生成配置文件**:选择数据库中的目标表,如`t_user`,通过右键菜单选择“HibernateReverseEngineering”,根据提示逐步填写相关信息,包括主键类型、对应的Java类名及包名等,最后点击“Finish...

    Spring+Hibernate处理Oracle lob字段(一)

    处理这些字段时,我们需要配置Hibernate的实体类和映射文件。 在实体类中,我们需要声明一个对应的字段,并使用Hibernate的@Lob注解来标识这是一个LOB字段。例如: ```java @Entity public class MyEntity { @Id ...

    hibernate5.3框架环境配置成功代码

    这里我们关注的是Hibernate 5.3版本的环境配置,这是一个关键步骤,确保后续的开发工作能够顺利进行。下面将详细介绍Hibernate 5.3框架环境配置的相关知识点。 1. **安装与下载**: 首先,你需要从Hibernate官方网站...

    hibernate的映射文件配置

    描述:本文深入解析了Hibernate映射文件配置的核心概念,重点阐述了映射文件的基本结构及其组成部分,包括主键(id)、普通属性(property)等关键元素的配置方法和策略。 ### Hibernate映射文件配置详解 在...

    Hibernate4 jar包及配置文件

    综上所述,掌握Hibernate4 jar包的使用和配置文件的编写,对于Java开发者来说是提升开发效率和代码质量的关键。通过深入理解这些知识点,可以更好地利用Hibernate实现数据库操作的自动化,从而专注于业务逻辑的实现...

    hibernate+spring配置文件

    首先,我们需要在Spring的配置文件中引入Hibernate的相关bean,通常命名为`applicationContext.xml`。这个文件是Spring的IoC(Inversion of Control)容器的定义,它会管理所有bean的生命周期。 1. **Spring配置...

    Hibernate3.x简单配置示例

    理解并熟练配置Hibernate的基本要素,如配置文件、实体类映射、Session和SessionFactory的使用,是掌握Hibernate的关键。通过实际项目中的简单配置示例,可以更好地理解和应用这些概念。在`hibernate_start`这个...

    MyEclipse中hibernate的配置

    ### MyEclipse中Hibernate的基本配置步骤与理解 #### 一、引言 随着软件开发行业的不断发展,ORM(Object-Relational Mapping,对象关系映射)技术已成为连接对象模型与关系型数据库的重要桥梁之一。其中,...

    hibernate对Blob类型字段进行数据添加.txt

    在 Java 应用开发中,尤其是使用 ORM 框架如 Hibernate 进行持久化层开发时,如何高效地处理 BLOB 类型字段成为了一个关键问题。 本文档将详细介绍如何使用 Hibernate 对 Blob 类型字段进行数据添加的过程,并通过...

    Spring+Struts+Hibernate比较详细的整合配置方案

    - 添加Hibernate相关库,包括`hibernate-core.jar`和数据库驱动。 - 创建Hibernate的配置文件(如`hibernate.cfg.xml`),配置数据库连接、实体类映射等。 - 定义实体类,继承Hibernate的`Serializable`接口,并...

    Hibernate 的原理与配置快速入门

    在 Hibernate 中,Type 是一个关键概念,它定义了如何将 Java 类型映射到数据库字段。例如,一个 String 类型的属性可以映射到数据库的 VARCHAR 类型字段。Hibernate 还支持自定义 Type,以满足特定的业务需求。 ...

    常用 Hibernate 映射配置说明.doc

    ### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项...理解并熟练掌握这些配置,是高效利用Hibernate框架的关键。

    hibernate 4的配置和使用

    4. Hibernate的其他配置:Hibernate配置文件还包含了一些其他关键的配置项,例如"hibernate.show_sql"用于在控制台输出执行的SQL语句,这对于调试和开发非常有用。"hibernate.hbm2ddl.auto"配置项用于根据映射文件来...

    spring+hibernate操作oracle的clob字段

    在J2EE开发中,处理大数据对象(如大文本或二进制数据)时,Oracle数据库的CLOB...通过以上配置和操作,你可以在Spring和Hibernate的环境中顺利地对Oracle数据库的CLOB字段进行读写,满足J2EE应用中的大数据存储需求。

    spring2.5+hibernate基于xml配置的实例

    这个"spring2.5+hibernate基于xml配置的实例"是一个经典的组合,展示了如何在旧版本的Spring(2.5)和Hibernate中通过XML配置文件来整合和管理应用的组件。 首先,Spring 2.5是Spring框架的一个早期版本,它引入了...

Global site tag (gtag.js) - Google Analytics