`

大家对hibernate 级联的必要性是怎么个看法

阅读更多

如,有两个对象。User,Order(一个人可以有多个订单).那么这个是一对多关系。在建立ORM时:
1  user 实体(类伪码):

@Entity
@Table(name="t_user")
public class User{
  @Id
  @Column(name="id")
  private String id;
  @Column(name="username")
  private String username;
  @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "user")
  private Set<Order> orders;
}

 

2 order 实体(类伪码):

@Entity
@Table(name="t_order")
public class Order{
  @Id
  @Column(name="id")
  private String id;
  @Column(name="name")
  private String name;
  @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH},fetch = FetchType.LAZY)
  @JoinColumn(name = "user_id")
  private User user;
}

 

现在在考虑红字部分的必要性:

a  删除第一部分

b  第二部分,不级联,直接映射数据库的字段。@Column(name="user_id") private String userId;

我所知道的它的好处:

1  当获取User对象后,可以直接点取Order对象;

2  对应的级联特性;

对于这两点:

都可以通过显示增加代码量来完成。而且实际上,代码量并不是很多。

可以避免hibernate繁杂的映射关联。

 

我所不清楚的:在性能上面,有没有什么区别(我是觉得没有什么太大性能区别,而且换成显示控制,还可以增加灵活性)?

求教

 

 

分享到:
评论

相关推荐

    hibernate-core 核心jar包

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作与业务对象进行解耦,简化了数据库编程。`hibernate-core`是Hibernate的核心库,包含了执行ORM功能所需的主要组件。 在Hibernate-...

    Hibernate常用的jar包和两个配置文件

    - **懒加载** 和 **级联操作**:优化性能的策略,懒加载允许延迟加载关联的对象,级联操作使对一个对象的操作自动影响到其关联的对象。 通过理解和熟练使用这些jar包和配置文件,开发者可以充分利用Hibernate框架的...

    hibernate5.0jar包

    这个jar包是Hibernate框架的核心组件,包含了所有必要的类和接口,允许开发者将业务对象与数据库表进行映射,从而避免了传统的SQL编程。 在Hibernate 5.0中,有几个关键知识点值得一提: 1. **对象关系映射(ORM)...

    一个很简单的hibernate例子

    在Java开发领域,Hibernate是一个...随着对Hibernate的深入学习,还可以掌握更复杂的功能,如级联操作、懒加载、缓存机制以及实体关系映射等。理解并熟练运用Hibernate,可以极大地提高Java应用的开发效率和可维护性。

    hibernate jar包

    在上述的压缩包文件列表中,如果只列出了"hibernate",可能意味着包含的是整个Hibernate框架的多个jar包,包括核心库和其他必要的组件,如JTA支持、JPA支持等。为了使用这些jar包,还需要确保项目的类路径正确包含了...

    Hibernate many-to-many

    通过这个示例,开发者不仅可以学习到如何在Hibernate中配置多对多关联,还能理解级联操作的工作原理。对于初学者来说,这是一个很好的实践项目,可以帮助他们深入理解Hibernate框架的使用和数据库操作的自动化管理。...

    hibernate人生中第一个成功及完美程序(适合入门者)

    在"hi1-2"这个压缩包中,可能包含了创建一个简单Hibernate应用的所有必要文件,如实体类、映射文件、配置文件以及主程序。例如,你可以看到一个User实体类,一个对应的User.hbm.xml映射文件,一个hibernate.cfg.xml...

    hibernate父亲与孩子

    Hibernate提供了`org.hibernate.collection.internal.PersistentBag`这样的集合实现,可以支持懒加载和级联操作,帮助我们在查询时只获取必要的节点,而不是一次性加载整个树。同时,我们可以利用Hibernate的...

    hibernate3.6.10.Final

    在描述中提到了“hibernate 3.6.10 Final版,稳定”,这表明这个版本是Hibernate 3系列中的一个成熟版本,具有良好的性能和兼容性。Hibernate 3.x系列引入了许多新特性,包括对JPA(Java Persistence API)的支持,...

    Hibernate包作用详解

    Hibernate是一个流行的Java持久化框架,用于简化数据库操作和对象关系映射(ORM)。它通过提供对象级别的编程模型,使得开发者可以避免直接编写SQL语句,从而更专注于业务逻辑。Hibernate包含多个jar包,每个都有...

    Hibernate.zip

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在Java应用程序中使用对象模型,而无需直接处理SQL语句。这个“Hibernate.zip”压缩包包含的是Hibernate的核心库,通常用于简化数据库交互。以下是...

    hibernate-4.3.9(最新稳定版)(jar)

    在这个版本中,Hibernate引入了对新的数据库特性的支持,比如SQL2003标准的窗口函数,这使得开发者能够编写更复杂、高性能的查询。同时,4.3.9也增强了对HQL(Hibernate Query Language)和Criteria API的支持,提供...

    hibernate开发流程 入门

    在测试类中,你可以导入必要的库,初始化SessionFactory,进行CRUD操作(创建、读取、更新、删除)以验证Hibernate的正确性。 以下是一个简单的UserTest.java代码示例: ```java package com.njcit.hibernate; ...

    使用Hibernate的一个完整例子

    Hibernate 是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作。在本教程中,我们将探讨如何在实际项目中使用Hibernate进行数据库操作,通过一个完整的实例来展示其核心功能。 1. **环境...

    Hibernate5.4.2最新架包

    Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者使用面向对象的方式来...这个压缩包“Hibernate5.4.2最新架包”正是学习和使用Hibernate的好起点,包含所有必要的库文件,可以直接引入项目中使用。

    hibernate jar包+api

    同时,通过阅读API文档,开发者可以更好地利用Hibernate提供的高级特性,如懒加载、级联操作、多态映射等,以提高代码的效率和可维护性。 总结,Hibernate作为强大的ORM工具,极大地简化了Java应用程序中的数据库...

    hibernate3.6.0完整jar包

    这个版本不仅支持JPA标准,还包含了对各种数据库的兼容性,以及性能优化和丰富的查询能力。提供的"lib"文件夹中,包含了所有必要的外部依赖,确保了Hibernate的正常运行。这个资源对于那些在寻找完整Hibernate版本的...

    hibernate-cglib-repack-2.1_3.jar.zip

    这个jar文件集成了Hibernate和CGLIB的特定版本,可能已经包含了必要的配置和依赖,方便开发者直接引入项目中使用。 在实际开发中,引入这个jar文件后,我们可以通过以下步骤使用Hibernate-CGLIB: 1. 配置...

    Hibernate 多对多关联

    在Java的持久化框架Hibernate中,多对多(Many-to-Many)关联是一种常见的数据库关系映射,它允许一个实体类中的多个实例与另一个实体类的多个实例相互关联。在这个场景下,"Hibernate 多对多关联"的问题可能是由于...

    在Java SE中使用Hibernate处理数据

    在Java SE环境中使用Hibernate处理数据是一项常见的任务,尤其是在开发企业级应用时,需要对数据库进行高效、灵活的管理和操作。Hibernate作为一个流行的Object-Relational Mapping(ORM)框架,能够简化Java程序员...

Global site tag (gtag.js) - Google Analytics