`
yourenyouyu2008
  • 浏览: 287740 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用hibernate的关联代替数据库的外键关联

阅读更多

数据库的外键关联删除对象时相当的慢,会去查看每一个关联的表的每条记录,这样当一个表被很多表引用时,删除这个表中的记录的代价是相当大的。hibernate的对象关联默认会在两个表之间做外键关联,而它的级联删除却没有用数据库的这种特性,这是个相当明智的决定。hibernate用两条delete来完成同样的功能,如果数据库还存在外键的话,那么有一条delte是很慢的,我们手动把数据库的外键关联删除掉速度就相当快了。

这样我们在程序级别利用了级联的便利性,而性能上又没有什么损失。

 

hibernate级联

数据库不外键关联

分享到:
评论

相关推荐

    Java的Hibernate框架中的双向主键关联与双向外键关联

    这里主要讨论的是双向主键关联和双向外键关联。 **双向主键关联** 双向主键关联实际上是一种特殊的一对一关联,其中两个实体类的主键相互引用,形成一个闭环。在这种关联中,Person类和IdCard类具有相同的主键,即...

    hibernate一对一主键关联代码实现

    如果只需要在一方(通常是拥有外键的一方)表示关联,可以使用单向一对一关联。比如只在`Passport`类中定义`Person`对象,而`Person`类不包含`Passport`对象。 在实际应用中,应根据业务需求选择合适的关联方式。...

    Hibernate使用 Map实现多对多映射

    在Java的持久化框架Hibernate中,多对多映射是一种常见的关系映射方式...综上所述,使用Hibernate的Map实现多对多映射是一种灵活且高效的方法,允许开发者以面向对象的方式处理复杂的数据关系,同时简化了数据库操作。

    hibernate ppt

    1. 使用注解简化配置:尽可能使用注解来代替XML映射文件,提高代码可读性和维护性。 2. 优化懒加载(Lazy Loading):避免“懒加载地狱”,合理设计实体关联的加载策略。 3. 使用第一级缓存和二级缓存:缓存机制可以...

    java for hibernate

    在Hibernate中,可以通过`@OneToOne`注解来实现这种映射,如`hib_007_one2one_pk`和`hib_008_one2one_fk`所示,分别表示主键关联和外键关联的实现。 - **一对多(OneToMany)**:一个实体可能与多个其他实体相关联...

    Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践)

    例如,应该尽量使用双向关联来维护对象之间的关系,使用HQL语句代替原生SQL语句以保持代码的可移植性和减少数据库依赖。另外,合理使用集合映射配置,如集合类型映射元素、、、等,是管理集合属性数据的有效方式。 ...

    Hibernate练习题

    - D) 表之间的参考关系对应类之间的依赖关系:外键关系在对象模型中体现为对象之间的关联或引用。 2. `load()`和`get()`的区别: - `load()`:返回的是一个代理对象,不立即执行SQL查询,只有在访问对象属性时才...

    hibernate的xml配置关系例子

    - 一对一(OneToOne):通过主键或外键关联,可以是单向或双向。在`.hbm.xml`文件中,使用`<one-to-one>`标签进行配置。 - 一对多(OneToMany):一个实体可以与多个其他实体关联。使用`<set>`或`<list>`标签,...

    Hibernate性能优化

    2. **关联映射优化**:尽量使用外键代替关联映射,减少级联操作。避免过多的一对多、多对多关系,这些关系可能导致大量数据库查询。 3. **避免过多的反向引用**:减少从子对象获取父对象的反向引用,以降低查询...

    Hibernate集合属性的延迟加载.doc

    Hibernate 会创建一个代理对象,代替实际的集合对象。当尝试访问集合属性时,代理对象会检测到这个操作,并触发数据库查询来获取实际的数据。只有在调用集合的某个方法(如 `size()`、`get()` 或迭代)时,才会执行 ...

    Hibernate中文文档

    - **一对一映射**:一个 Java 类对应数据库中一张表,通过主键或外键关联另一个 Java 类对应的表。 - **一对多映射**:一个 Java 类对应多张表或多条记录,通常通过集合属性实现。 - **多对多映射**:两个 Java 类...

    Hibernate基础教程Hibernate基础教程

    - 一对一:使用`@OneToOne`,可配置外键约束,关联映射。 - 一对多:`@OneToMany`,可设置`fetch`策略和`cascade`操作。 - 多对一:`@ManyToOne`,通常配合`@JoinColumn`使用。 - 多对多:`@ManyToMany`,通常...

    Hibernate 资料

    2. **@OneToOne**: 一对一关系,可以设置外键约束或使用关联映射。 3. **@ManyToMany**: 多对多关系,需要一个中间表来存储两个实体的关联信息。 **八、延迟加载(Lazy Loading)** Hibernate 提供了懒加载机制,只...

    Hibenrate之多对多关联

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库。本文将深入探讨Hibernate中的多对多关联映射,这是一种常见的数据库关系模型,尤其在处理复杂数据...

    hibernate一对一例子

    在Java世界中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将通过一个具体的“一对一”关系的例子来帮助初学者理解Hibernate...

    Hibernate性能优化共9页.pdf.zip

    - 使用`HQL`(Hibernate Query Language)或`Criteria API`代替`SQL`,让Hibernate更好地利用其内部优化机制。 - 避免在`HAVING`子句中使用集合函数,这可能导致全表扫描。 - 限制结果集大小,使用`FirstResult`...

    HIbernate关系映射

    这种一对一关联的方式比较特殊,它在两个表中都添加了一个外键,同时在配置文件中使用`<many-to-one>`代替`<one-to-one>`。虽然这种方式在官方文档中未明确提及,但在实践中也是可行的。 **配置文件** (`Course.hbm...

    20个数据库设计最佳实践

    - **实现技巧**:如果需要多个单词来表示表的意义,可以使用下划线或驼峰命名法代替空格。 #### 4. 避免不必要的前缀或后缀 - **实践要点**:表名不应包含不必要的前缀或后缀,如`TblSchool`或`SchoolTable`。 - **...

    51CTO下载-ssh原理

    在 Hibernate 中,类之间的关系通过配置文件定义,如 many-to-one、one-to-many 和 many-to-many,这对应于数据库中的外键关系。 Hibernate 缓存机制包括一级缓存(Session 内部缓存)和二级缓存。一级缓存是事务级...

Global site tag (gtag.js) - Google Analytics